我有一个来自aparat网站的api。我用这种方法进行搜索
http://www.aparat.com/etc/api/videoBySearch/text/[نوروز]
我应该使用editText
值填充最后一个参数。为了获得json。如果我发送english
字符串就可以了。但是,如果我发送像persian
这样的unicode字符串,它就无法工作,当我记录它时,它会说
java.lang.RuntimeException:Bad URL null
这是我的JsonResponse方法:
//this method call when search button pressed !
private void sendJsonRequest() {
String rawQuery = edtsearchQuery.getText().toString();
==> String first_url = "http://www.aparat.com/etc/api/videoBySearch/text/"+ rawQuery;
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, first_url, (String) null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
parseJsonResponse(response);
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("onErrorResponseSenJsReq" , error.getMessage());
}
});
AppController.getInstance().addToRequestQueue(request);
}
答案 0 :(得分:3)
不是在网址中发送نوروز
而是使用URLEncoder
对其进行编码,然后再将其添加到主网址中:
String strSearchQuery= URLEncoder.encode(rawQuery, "utf-8");
String first_url="http://www.aparat.com/etc/api/videoBySearch/text/"
+strSearchQuery;