Java URLEncoder限制服务器的响应
我有以下问题 当我硬编码一个url查询时 例如: (检查浏览器中的链接) 然后我向服务器发出请求,得到字符串中的整个响应 但是,当我动态创建它时,我必须在URLEncoder.encode(“|“,“UTF-8”)中传递“|”字符,这种格式 在这种情况下,响应只是我想要的一个元素 是不是我错过了什么 提前谢谢Java URLEncoder限制服务器的响应,java,android,networking,network-programming,Java,Android,Networking,Network Programming,我有以下问题 当我硬编码一个url查询时 例如: (检查浏览器中的链接) 然后我向服务器发出请求,得到字符串中的整个响应 但是,当我动态创建它时,我必须在URLEncoder.encode(“|“,“UTF-8”)中传递“|”字符,这种格式 在这种情况下,响应只是我想要的一个元素 是不是我错过了什么 提前谢谢 protected String doInBackground(String... query) { String response = ""; De
protected String doInBackground(String... query) {
String response = "";
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = null;
// try {
HttpResponse execute = null;
try {
//String searchTerm = URLEncoder.encode(query[0], "UTF-8");
httpGet = new HttpGet(query[0]);
execute = client.execute(httpGet);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
InputStream content = null;
try {
content = execute.getEntity().getContent();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader buffer = new BufferedReader(new InputStreamReader(
content));
String s = "";
try {
while ((s = buffer.readLine()) != null) {
response += s;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return response;
}
以上部分是我的代码。。输入查询[0]是我正在请求的url,它类似于我在开始时发布的链接
如果我硬编码了url(直接设置链接),我就会得到响应。我的响应是json格式的字符串。(现在我让它串起来)
如果我动态进行查询,例如:
gsQuery = mainPage + "&gsradius=" + radius + "&gscoord=" + latitude + URLEncoder.encode("|", "UTF-8") + longtitude +"&format=json";
(仅编码“|”字符)它仅返回响应的第一个元素 有什么问题吗?输出是否不符合预期?这是什么?您必须对所有参数名称和值进行URL编码,而不仅仅是单个字符。如果没有相关的代码,你的问题是无法回答的。好吧,我将分享更多…所以,我重复一遍,你做错了。当您正确地执行时会发生什么?好的,当我正确地执行时,在调用execute=client.execute(httpGet)之后;然后我在w.unlock()中的RunWorker上有一个卡滞;//允许中断。它也是一款android应用程序