当前位置: 首页 > 知识库问答 >
问题:

HttpGet中的android java.lang.IllegalArgumentException[重复]

麹飞航
2023-03-14

我正在尝试从远程服务器获取响应。下面是我的代码:

private static String baseRequestUrl = "http://www.pappico.ru/promo.php?action=";

    @SuppressWarnings("deprecation")
    public String executeRequest(String url) {
        String res = "";
        HttpClient httpClient = new DefaultHttpClient();
        HttpResponse response;      

        try {   
            //url = URLEncoder.encode(url, "UTF-8");
            HttpGet httpGet = new HttpGet(url);

            response = httpClient.execute(httpGet);
            Log.d("MAPOFRUSSIA", response.getStatusLine().toString());

            HttpEntity entity = response.getEntity();

            if (entity != null) {
                InputStream inStream = entity.getContent();
                res = streamToString(inStream);

                inStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return res; 
    }

    public String registerUser(int userId, String userName) {
        String res = "";
        String request = baseRequestUrl + "RegisterUser&params={\"userId\":" +
                 userId + ",\"userName\":\"" + userName + "\"}";

        res = executeRequest(request);

        return res; 
    }

httpgethttpget=new httpGet(url)行中出现以下异常

IllegalStateException:目标主机不能为空,或在参数中设置。scheme=null,host=null,path=http://www.pappico.ru/promo.php?action=registerUser&params={“userid”:1,“username”:“ithsoftsuve+...ithoftsuveuve....”}

不知道该怎么做才能让它发挥作用。如有任何帮助,我们将不胜感激:)

共有1个答案

祁鸿哲
2023-03-14

您必须对URL参数进行编码:

String request = baseRequestUrl + "RegisterUser&params=" +    
        java.net.URLEncoder.encode("{\"userId\":" + userId + ",\"userName\":\"" + userName + "\"}", "UTF-8");
 类似资料:
  • 问题内容: 我正在使用以下代码从Web服务器请求xml: 当我调用httpclient.execute(httpget,responseHandler)时,我得到一个clientProtocolException。该URL在Web浏览器中工作正常,它返回xml,然后浏览器显示它。 有什么想法为什么我会得到一个clientProtocolException而浏览器却能很好地处理它? 编辑1: 查看协

  • 向传递的 URL 发出一个 GET 请求。 使用 XMLHttpRequest web API 向给定的 url 发出 get 请求。 通过调用给定的 callback 和 responseText 来处理 onload 事件。 通过运行提供的 err 函数,处理onerror事件。 省略第四个参数 err ,默认将错误记录到控制台的 error 流。 const httpGet = (url,

  • 我的android应用程序一直在崩溃。我正在尝试通过电话后连接到网络服务。但是我的应用程序每次尝试调用网络服务时都会崩溃。

  • 我试图使用Apache HTTPClient执行一个简单的get请求,但是看起来好像所有的代码在HTTP响应=client.execute(get);被跳过。我无法访问响应对象的内容,它们都是空的。然而,当我使用调试模式,我探索的对象,我看到所有的数据。这个函数被包装在一个异步任务中,所以我想知道任务本身是否在等待它被执行或者我不确定的事情。 这里也发生了类似的事情:httpclient之后的An

  • 我只是复制了的所有jar文件,但是不能导入所有这些jar文件,它给出一个错误:。

  • 问题内容: 我正在尝试将Cookie与HttpGet请求一起发送,但是每次尝试都无法成功发送它。我也尝试直接修改标题,这是我的代码: 问题答案: 这实际上是HttpClient 4.0.1的正确实现,我只是没有获得正确的cookie。