Java-即使在使用urlencode之后,也会不断获取路径错误

Java-即使在使用urlencode之后,也会不断获取路径错误,java,android,Java,Android,我只是想做一个HttpGet 以下是正在传递的字符串: fullString = "?nOne=" + node1 + "&nTwo=" + node2 + "&nThree=" + node3 + "&nFour=" + node4 + "&power=" + power + "&color=" + colorRGB; 除颜色为9位外,所有变量均为单个整数 该字符串被传递给执行以下操作的函数: String get_url = URLEncoder.e

我只是想做一个HttpGet

以下是正在传递的字符串:

fullString = "?nOne=" + node1 + "&nTwo=" + node2 + "&nThree=" + node3 + "&nFour=" + node4 + "&power=" + power + "&color=" + colorRGB;
除颜色为9位外,所有变量均为单个整数

该字符串被传递给执行以下操作的函数:

String get_url = URLEncoder.encode("http://192.168.30.80/" + str, "UTF-8");
HttpClient Client = new DefaultHttpClient();
HttpGet httpget;
ResponseHandler<String> responseHandler = new BasicResponseHandler();
httpget = new HttpGet(get_url);
String content = Client.execute(httpget, responseHandler);
但这给了我一个非法的字符错误。尝试urlencode后,我现在得到一个:

java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=http://192.168.30.80/[Ljava.lang.String;@1a50d830
为什么不能只是一根绳子?(显然这是我第一次尝试android/java)

请帮助我了解出了什么问题,谢谢。

urlcoder。encode
不编码完整的URL,但应用于GET参数的值

例如


查看响应,没有解析路径以提取方案或主机,因为它们都为null

查看文档,它应该从字符串开始工作。您是否已检查字符串的编码是否正确?似乎无法识别方案或主机

您可以尝试在将字符串值传递给HttpGet之前检查该字符串值,也可以尝试使用URI

URI address = new URI("http://192.168.30.80/" + str);
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(address);
HttpResponse response = client.execute(request);

您在何处声明
str
?它是一个
字符串
还是
字符串[]
。。看来我今天学到了一些东西。那根绳子。。。意思是列表。因此,当我引用字符串str[0]时,它是有效的。谢谢@bobthebuilder干了这件事。得到以下错误。错误:(47,51)错误:找不到编码(int,String)方法URLEncoder的合适方法。编码(String,String)不适用(实际参数int不能通过方法调用转换转换为String)方法URLEncoder。编码(String)不适用(实际参数列表和形式参数列表长度不同)嗯,
encode
需要一个字符串,然后传递一个整数
encode
不会修改字符0..9,因此不需要对正整数进行编码。仅对URL中可能有问题的参数进行编码,并确保在传递到编码之前将其转换为字符串。
fullString = "?nOne=" + URLEncoder.encode(node1, "UTF-8");
fullString += "&nTwo=" + URLEncoder.encode(node2, "UTF-8");
URI address = new URI("http://192.168.30.80/" + str);
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(address);
HttpResponse response = client.execute(request);