gpt4 book ai didi

java - 如何使用 HttpURLConnection 在 Android 中的 url 末尾添加 json 数组?

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

最近在一个项目中,我不得不面对同事提供的一个 API,它使用 GET 方法接受 URL 中对象的 JSON 数组。

例如调用API为

api.site.com/object/create/[{"id":1,"name":"Hello!"},{"id":2,"name":"World!"}]

此网址与 Chrome 完美配合,API 返回预期值,例如:[{"id":12501}]

但是在 Android 中,处理的函数会抛出一个 java.net.SocketTimeoutException

代码如下:

public String makeMVCServiceCall(String url,Method method,String additionalInformation)

{
url=url+"/"+additionalInformation;
return makeServiceCall(url,method);
}
public String makeServiceCall(String url,Method method)
{
HttpURLConnection connection=null;
try
{
URL u=new URL(url);
connection=(HttpURLConnection)u.openConnection();
String m=method== Method.GET?"GET":method== Method.POST?"POST":null;
connection.setRequestMethod(m);

connection.setUseCaches(false);
connection.setAllowUserInteraction(false);
connection.setReadTimeout(READ_TIMEOUT);
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.connect();
int status=0;
String response=connection.getResponseMessage();
status=connection.getResponseCode();


switch (status)
{
case 200:
case 201:

BufferedReader br=new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb=new StringBuilder();

String line;
while((line=br.readLine())!=null)
{
sb.append(line+"\n");
}
br.close();

return sb.toString();
default:
return null;
}
}

catch (Exception e)
{

}
finally {
if(connection!=null)
try
{
connection.disconnect();
}
catch (Exception e)
{

}
}

return null;
}

超时时间为 5 秒,将其更改为 15 秒没有任何区别。我认为在 URL 末尾附加 JSON 对象是一种不好的做法,但我必须使用该 API。

有什么建议吗?

最佳答案

尝试对附加参数进行编码:

URLEncoder.encode(附加信息)

关于java - 如何使用 HttpURLConnection 在 Android 中的 url 末尾添加 json 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36694431/

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