0

我正在尝试通过 android 应用程序将 JSON 数据推送到服务器,但无法隔离问题。服务器根本没有收到连接,但客户端没有任何问题。

public void getServerData() throws JSONException, ClientProtocolException, IOException {
    DefaultHttpClient httpClient = new DefaultHttpClient();
    ResponseHandler <String> resonseHandler = new BasicResponseHandler();
    HttpPost postMethod = new HttpPost("HTTP://URL_GOES_HERE/FOLDER");
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    //Log.v("JSON being sent", json.toString());
    nameValuePairs.add(new BasicNameValuePair("jsonString", json.toString()));
    postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    String response = httpClient.execute(postMethod,resonseHandler);

    JSONObject jsonResponse = new JSONObject(response);
    Log.v("beginresponse","beginresponse");
    Log.v("server response", jsonResponse.toString());
    Log.v("endresponse","endresponse");
    //Log.v("msg to server", json.toString());

}

这是一些示例日志输出:

10-20 11:31:09.195: I/APACHE HTTP (thCr=1) - NafHttpAuthStrategyDefault(25802): (thUse=1) NafHttpAuthStrategyDefault()
10-20 11:31:09.205: I/APACHE HTTP (thCr=1) - NafHttpAuthStrategyDefault(25802): (thUse=1)    cached value : gbaSupportIsPossible=null
10-20 11:31:09.205: I/APACHE HTTP (thCr=1) - NafHttpAuthStrategyDefault(25802): (thUse=1)    The current context is NOT a context of GBA service.
10-20 11:31:09.215: I/APACHE HTTP (thCr=1) - GbaSupportPermissionRequestCheckerImpl(25802): (thUse=1) isCurrentProcessRequestedGba()#finished   result=false
10-20 11:31:09.215: I/APACHE HTTP (thCr=1) - GbaSupportPermissionRequestCheckerImpl(25802): (thUse=1) isCurrentProcessAllowedToUseGba()#started   result=false
10-20 11:31:09.215: I/APACHE HTTP (thCr=1) - NafHttpAuthStrategyDefault(25802): (thUse=1)    The GBA permission wasn't requested for this process.
10-20 11:31:09.215: I/APACHE HTTP (thCr=1) - NafHttpAuthStrategyDefault(25802): (thUse=1) It is impossible to support GBA now (many possible reasons: no Android Context, current client is GBA service, etc.), then it will be just usual HTTP.
10-20 11:31:09.215: I/APACHE HTTP (thCr=1) - NafRequestExecutorWrapperRedirectionHandler(25802): (thUse=1)    It isn't GBA flow, redirection responses are not handled.
10-20 11:31:09.226: W/MediaRecorder(25802): mediarecorder went away with unhandled events
10-20 11:31:12.008: D/memalloc(25802): ion: Unmapping buffer  base:0x5ba42000 size:1536000
10-20 11:31:12.008: D/memalloc(25802): ion: Unmapping buffer  base:0x5bcb9000 size:1536000
10-20 11:31:12.008: D/memalloc(25802): ion: Unmapping buffer  base:0x5be30000 size:1536000
10-20 11:31:12.018: D/CLIPBOARD(25802): Hide Clipboard dialog at Starting input: finished by someone else... !
10-20 11:31:18.014: D/memalloc(25802): ion: Mapped buffer base:0x5ba42000 size:1536000 offset:0 fd:46
10-20 11:31:18.074: D/memalloc(25802): ion: Mapped buffer base:0x5bcb9000 size:1536000 offset:0 fd:53
10-20 11:31:23.439: D/memalloc(25802): ion: Mapped buffer base:0x5be30000 size:1536000 offset:0 fd:56
10-20 11:31:23.580: I/mic(25802): 1
10-20 11:31:23.580: I/path(25802): /mnt/sdcard/most-recent-recording.aac
4

1 回答 1

1

是的,我猜从 API 11 开始,服务器连接将无法在 UI 线程上运行。所以试着把它放到异步任务中。

于 2012-11-27T01:30:39.143 回答