我正在尝试使用以下代码将两个 json 编码值发布到我的 webservice 。但我没有得到任何回应(只是空白输出和LogCat没有错误)。但是,我尝试使用 cURL 将相同的参数从PHP发布到 webservice ,效果很好。
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
HttpResponse response;
try {
json.put("name","email");
json.put("email", "email");
HttpPost post = new HttpPost(url);
post.setHeader("Content-Type", "application/json");
post.setHeader("Accept-Encoding", "application/json");
post.setHeader("Accept-Language", "en-US");
List<NameValuePair> ad = new ArrayList<NameValuePair>(2);
ad.add(new BasicNameValuePair("json", json.toString()));
post.setEntity(new UrlEncodedFormEntity(ad));
Log.i("main", "TestPOST - nVP = "+ad.toString());
response = client.execute(post);
if(response!=null) {
HttpEntity entity = response.getEntity();
output = EntityUtils.toString(entity,HTTP.UTF_8); //Get the data in the entity
}
} catch(Exception e) {
}
答案 0 :(得分:0)
尝试通过此方式获得您的回复
if (response.getStatusLine().getStatusCode() == 200)
{
HttpEntity entity = response.getEntity();
json = EntityUtils.toString(entity);
}
答案 1 :(得分:0)
你正在捕捉Exception(超级类)而没有记录。如果你的try块中出现任何类型的异常,代码将跳转到catch而没有任何日志。
改变这个:
catch(Exception e){
}
带
catch (Exception e)
Log.e("myappname", "exception", e);
}
答案 2 :(得分:0)
如果没有回复,你一定要检查你的捕获异常e,因为你没有在条款中写任何东西,可能会发生一些事情,但你没有注意到。