%在url http请求java中
我试图用java执行http请求,但出现以下错误: java.lang.IllegalArgumentException:索引80处的查询中的%sequence:%Ne无效:%在url http请求java中,java,android,Java,Android,我试图用java执行http请求,但出现以下错误: java.lang.IllegalArgumentException:索引80处的查询中的%sequence:%Ne无效: try { HttpClient Client = new DefaultHttpClient(); String URL = "Example.com"; HttpGet httpget = new HttpGet(URL); ResponseHandler<String&g
try {
HttpClient Client = new DefaultHttpClient();
String URL = "Example.com";
HttpGet httpget = new HttpGet(URL);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String SetServerString = Client.execute(httpget, responseHandler);
Log.e("iets",SetServerString);
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
试试看{
HttpClient=new DefaultHttpClient();
字符串URL=“Example.com”;
HttpGet HttpGet=新的HttpGet(URL);
ResponseHandler ResponseHandler=新BasicResponseHandler();
String SetServerString=Client.execute(httpget,responseHandler);
Log.e(“iets”,SetServerString);
}
捕获(客户端协议例外e){
e、 printStackTrace();
}
捕获(IOE异常){
e、 printStackTrace();
}
我似乎无法在查询中使用字符“%”。但问题是,我确实需要使用“%”,因为它表示echonest.php中的一个空间
我怎样才能解决这个问题
提前感谢您应该使用
%用于对URL中的特殊字符进行编码。要对实际的“%”字符进行编码,需要使用%25 url将变为:
有现成的库来编码URL。它将有助于避免其他奇怪的符号,如空格、斜杠等。因为您在
URL
中使用了特殊字符,所以您应该使用urlcoder.encode()方法
例如:-
stringurl=”http://bertenbevers.be/ProjectICT4/echonest.php?“+URLEncoder.encode”(“title=stormwatch&artist=Helvetic%Nerds”)代码>
希望这有助于您解决问题像这样使用URLEncoder:
String URL = "www.example.com"?title=stormwatch&artist=Helvetic"+URLEncoder.encode("%","UTF-8")+"Nerds";
修改您的代码:
try {
HttpClient Client = new DefaultHttpClient();
String URL = "www.example.com/?title=stormwatch&artist=Helvetic"+URLEncoder.encode("%","UTF-8")+"Nerds";
HttpGet httpget = new HttpGet(URL);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String SetServerString = Client.execute(httpget, responseHandler);
Log.e("iets",SetServerString);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
试试看{
HttpClient=new DefaultHttpClient();
String URL=“www.example.com/?title=stormwatch&artist=Helvetic”+URLEncoder.encode(“%”,“UTF-8”)+“Nerds”;
HttpGet HttpGet=新的HttpGet(URL);
ResponseHandler ResponseHandler=新BasicResponseHandler();
String SetServerString=Client.execute(httpget,responseHandler);
Log.e(“iets”,SetServerString);
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
在查询中将空间写入器设置为%20。是否尝试对url进行编码?编码(URL,“utf-8”);您可能想要使用URI模板;我碰巧是这样想的,但其他人也存在。特别是,如果你使用番石榴,它有Escaper
s。为什么要投反对票,陌生人?没有投反对票,但你编码太多了,比如=
和&
。许多其他答案都有同样的问题。@laalto谢谢!编辑!:)<代码>+“书呆子”
-你忘了把它放在双引号下。是的,编辑过!谢谢@ComputerFellow:)
try {
HttpClient Client = new DefaultHttpClient();
String URL = "www.example.com/?title=stormwatch&artist=Helvetic"+URLEncoder.encode("%","UTF-8")+"Nerds";
HttpGet httpget = new HttpGet(URL);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String SetServerString = Client.execute(httpget, responseHandler);
Log.e("iets",SetServerString);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}