gpt4 book ai didi

java - 某些设备上的字符 0 错误输入结束

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:50 25 4
gpt4 key购买 nike

我有以下代码,我在其中调用一个由 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 字符串,如下所示在 stringbuilder 中

{
"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" } }

我不知道发生了什么事,请帮忙。任何输入将不胜感激。

最佳答案

您发布的代码没有任何异常。那里没有线索。

让我总结一下您所说的症状。

  • 对于某些设备/运营商,特定的 API 调用会失败。但并非所有设备/运营商。

  • 对于与上述相同的设备/运营商,其他 API 调用都可以正常工作。

  • 除了 URL 之外,客户端代码在所有情况下都是相同的。

对我来说,这指出了服务器端的一个问题,该问题是由请求看起来像什么触发的。但无论哪种方式,我都会尝试通过查看服务器端的请求和响应并检查服务器端日志来对此进行调查。查看来自不同设备/运营商的请求是否存在显着差异。特别是那些有效的与无效的。并在服务器发送响应时查看响应是否为空。

关于java - 某些设备上的字符 0 错误输入结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36342515/

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