Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java URLEncoder限制服务器的响应_Java_Android_Networking_Network Programming - Fatal编程技术网

Java URLEncoder限制服务器的响应

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

我有以下问题

当我硬编码一个url查询时

例如:

(检查浏览器中的链接)

然后我向服务器发出请求,得到字符串中的整个响应

但是,当我动态创建它时,我必须在URLEncoder.encode(“|“,“UTF-8”)中传递“|”字符,这种格式

在这种情况下,响应只是我想要的一个元素

是不是我错过了什么

提前谢谢

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应用程序