gpt4 book ai didi

java - 使用 Android 检索响应

转载 作者:太空宇宙 更新时间:2023-11-04 14:12:49 25 4
gpt4 key购买 nike

我有一个 android 应用程序,它在 AsyncTask 中向 servlet 发出 2 个 get 请求。我想检索一个包含简单响应的字符串。这是我的异步任务:

protected String doInBackground(Void... params) {
return uploadFile();
}

@SuppressWarnings("deprecation")
private String uploadFile() {
String responseString = null;
String responseStr = null;

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Config.FILE_UPLOAD_URL);

try {
AndroidMultiPartEntity entity = new AndroidMultiPartEntity(
new ProgressListener() {

@Override
public void transferred(long num) {
publishProgress((int) ((num / (float) totalSize) * 100));
}
});

File sourceFile = new File(filePath);

// Adding file data to http body
entity.addPart("image", new FileBody(sourceFile));


totalSize = entity.getContentLength();
httppost.setEntity(entity);

// Making server call
HttpResponse response = httpclient.execute(httppost);
HttpEntity r_entity = response.getEntity();

int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
// Server response
responseString = EntityUtils.toString(r_entity);


try {

HttpClient client = new DefaultHttpClient();
URI getURL = new URI("http://192.168.1.101:8080/MusaServlet?collection="+collection+"&name="+filename);
Log.i("QUERY",getURL.getQuery());
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
Log.i("GET RESPONSE",EntityUtils.toString(resEntityGet));
}
responseStr = EntityUtils.toString(responseGet.getEntity());

} catch (Exception e) {
e.printStackTrace();
}

} else {
responseString = "Error occurred! Http Status Code: "
+ statusCode;
}

} catch (ClientProtocolException e) {
responseString = e.toString();
} catch (IOException e) {
responseString = e.toString();
}

return responseStr;

}

Servlet 代码是:

        PrintWriter out = response.getWriter();
out.println("HELLO STUPID APP!");

但是应用程序显示的对话框是空的!无话可说!大家有什么问题吗?

谢谢

最佳答案

首先检查您的 GET 请求状态代码为

responseGet.getStatusLine().getStatusCode();

如果给出数字 200,则 GET 成功。
现在,如果是 200 那么您将通过以下代码收到您发送的响应

 HttpEntity resEntityGet = responseGet.getEntity();

然后

 String result;
if(resEntityGet !=null ){
result= EntityUtils.toString(resEntityGet);
}

现在最重要的是,一旦您执行 responseGet.getEntity(),GET 响应的数据将被传递给变量..您分配..并且稍后调用 responseGet.getEntity() 将始终返回空...

这可能是您在对话框中收到空响应的原因

关于java - 使用 Android 检索响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28089391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com