【问题标题】:how can i replace unicode String in url for getting json response?如何替换 url 中的 unicode 字符串以获取 json 响应?
【发布时间】:2016-05-22 06:55:06
【问题描述】:

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

【问题讨论】:

  • 用什么语言开发的api?
  • 我认为 php 。这个网站是公开的,我无法访问网站代码
  • 要么按照@ρяσѕρєя-k 的建议进行编码。或者,您可以尝试以POST 发送而不是GET
  • 你看here了吗?

标签: java android json unicode


【解决方案1】:

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

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

【讨论】:

  • 根据您的解决方案。它已被替换,但仍有问题,当我输入 mu url 的值时,它在 chrome 上工作。但它不适用于移动设备。
  • 虽然String strSearchQuery= URLEncoder.encode(rawQuery, "utf-8"); 更具可读性,但值得知道的是它等同于String strSearchQuery= URLEncoder.encode(rawQuery);
  • @kianarahimi: 但http://www.aparat.com/etc/api/videoBySearch/text/%D9%86%D9%88%D8%B1%D9%88%D8%B2 url 在我尝试时作为获取请求工作
  • @kianarahimi: 欢迎亲爱的。
猜你喜欢
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
  • 2019-09-23
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
相关资源
最近更新 更多