我有以下代码在其中调用由PHP构建的API.代码返回如下所述的json,我将其收集在stringBuilder对象中.问题是它在某些操作符以及与其他操作符/ wifi连接的少数设备上工作,在字符0异常处抛出JSONException输入末尾,我知道这是在输入字符串为空时出现的,这意味着stringBuilder对象为空.问题是我无法访问引发这些错误的设备.
我没有安装任何设备,为什么以下代码返回空字符串,并且在某些情况下仍能正常工作,用户已在3G和wifi上进行了测试,这些设备在其他国家/地区的操作符不同.
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost postRequest = new HttpPost(ServiceUrls.base_url + ServiceUrls.get_profile_url);
JSONObject object = new JSONObject();
object.put("username", params[0]);
StringEntity input = new StringEntity(object.toString());
input.setContentType("application/json");
postRequest.setEntity(input);
HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(
new InputStreamReader((response.getEntity().getContent())));
String output;
StringBuilder stringBuilder = new StringBuilder();
while ((output = br.readLine()) != null) {
stringBuilder.append(output);
}
如果是用于所有API调用,那么这是合乎逻辑的,但对于其他API调用却没有发生,则此API调用返回较大的JSON字符串,如下所示:
{
“status”:1,
“parking”:{
“name”:”ghgjjghghg”,
“cost”:3,
“ownerId”:29,
“address”:”xyz pqr”,
“slots”:4,
“image”:”d4bc95c1dd031685746f2c3570788acf.jpg”,
“details”:”gjhjghjgg”,
“amenities”:”gjhg”,
“id”:70,
“lon”:73.7898023,
“lat”:19.9974533,
“type”:0,
“available”:1
},
“rating”:0,
“ratingCount”:0,
“owner”:{
“id”:29,
“username”:”vd@gmail.com”,
“password”:””,
“fullname”:”vi hdjh”,
“phone”:”23434fddf”,
“ccNum”:null,
“ccType”:null,
“type”:1,
“authType”:1,
“image”:”582e3a77d76ae3203cfd6d6a346da429.jpg”,
“dni”:”abc123″,
“account”:”ABCBANK”
}
}
我不知道发生了什么事,请帮忙.任何输入将不胜感激.