3 回答
TA贡献1848条经验 获得超6个赞
new AsyncTask<Void,Void,Void>(){
private Exception exception;
@Override
protected Void doInBackground(Void... voids) {
try{
URL url= new URL("http://yourserveraddress/resource.extension");
HttpURLConnection con= (HttpURLConnection) url.openConnection();
//write additional POST data to url.getOutputStream() if you wanna use POST method
}catch (Exception ex){
this.exception=ex;
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
}.execute();
TA贡献1848条经验 获得超10个赞
有很多方法可以从应用程序发送 HTTP 请求。例如使用HttpURLConnectionwithGET方法,您可以按如下方式进行:
StringBuilder content = new StringBuilder();
try {
URL u1 = new URL(url);
HttpURLConnection uc1 = (HttpURLConnection) u1.openConnection();
if (uc1.getResponseCode()==HttpURLConnection.HTTP_OK) {
InputStream is = uc1.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String line;
while ((line = br.readLine()) != null) {
content.append(line).append("\n");
}
}//other codes
TA贡献1847条经验 获得超11个赞
您应该创建 HTTP 连接和 HTTP 请求。
您可以通过以下几种方式做到这一点:
HttpURLConnection
在 Java 中使用本机可用 - 有关详细信息,请参阅本教程:https : //www.mkyong.com/java/how-to-send-http-request-getpost-in-java/使用专用库,它以稍微好一点的方式做同样的事情 - 例如OkHttp
请记住,发送 HTTP 请求是非确定性操作,您应该在单独的非 UI 线程中执行它以保持 UI 畅通。您可以通过AsyncTask 来完成,这是最简单的解决方案,但您也可以将RxJava与RxAndroid或其他方法一起使用。
添加回答
举报