我到处搜索但我找不到答案,有没有办法发出简单的HTTP请求?我想在我的某个网站上请求PHP页面/脚本,但我不想显示该网页.
如果可能的话我甚至想在后台(在BroadcastReceiver中)这样做
我创建了android应用程序并使用JSON从服务器获取数据,但我得到了以下错误:
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题
谢谢
使用HttpUrlConnection使用抢占式基本http身份验证的最佳方法是什么.(现在假设我不能使用HttpClient).
编辑澄清:我正在使用Base64编码在请求标头中正确设置un/pw.是否需要设置任何其他标志或属性,或者我是否为抢先式基本身份验证所需的所有请求设置基本身份验证头?
我正在使用Android Studio,我花了几个小时试图在我的MainActivity.java文件中做一个简单的HTTP请求,并尝试了多种方法,并看到了很多关于这个主题的网页,但却无法弄清楚.
当我尝试OkHttp时,我收到一条关于无法在主线程上执行此操作的错误.现在我试着这样做:
public static String getUrlContent(String sUrl) throws Exception {
URL url = new URL(sUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.connect();
BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String content = "", line;
while ((line = rd.readLine()) != null) {
content += line + "\n";
}
return content;
}
Run Code Online (Sandbox Code Playgroud)
我将该方法直接放在MainActivity.java中,我的click事件从MainActivity.java中的另一个方法执行它:
try {
String str = getUrlContent("https://example.com/WAN_IP.php");
displayMessage(str);
}
catch(Exception e){
displayMessage(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
但是现在没有崩溃,我可以告诉该行抛出的异常是"BufferedReader",但是e.getMessage()是空白的.
我是Android Studio和Java的新手,所以请善待并帮助我解决这个非常基本的问题.最终我需要向服务器发送请求,看起来OkHttp是最好的方法,但我没有在网上随处可见的Android Studio中找到OkHttp的"Hello World".
我是 kotlin 开发人员。请教我在 Kotlin 中使用 httpRequest。
问题 - 如果我想请求 API 服务,并且必须使用 post 方法发送带有 json 对象的请求正文,我该怎么写??
感谢您的帮助。