如何在url中替换unicode String以获取json响应?

时间:2016-02-11 13:13:41

标签: java android json unicode

我有一个来自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);
    }

1 个答案:

答案 0 :(得分:3)

不是在网址中发送نوروز而是使用URLEncoder对其进行编码,然后再将其添加到主网址中:

String strSearchQuery= URLEncoder.encode(rawQuery, "utf-8");
String first_url="http://www.aparat.com/etc/api/videoBySearch/text/"
                                                        +strSearchQuery;