【发布时间】:2012-05-31 01:54:23
【问题描述】:
我正在使用 Java 并尝试使用连接字符串形成 URL。然后将其作为 POST 的 URI 传递给 HttpPost。
此代码失败:
String str1 = "http://www.example.com";
String str2 = "/directory";
HttpPost httppost = new HttpPost(str1 + str2);
这也失败了:
HttpPost httppost = new HttpPost(str1.concat(str2));
这样:
String strCombined = str1 + str2;
HttpPost httppost = new HttpPost(strCombined);
但是,这可行:
HttpPost httppost = new HttpPost("http://www.example.com/directory");
我错过了什么?
编辑:堆栈跟踪:
05-31 01:43:29.973: W/System.err(451): java.net.UnknownHostException: http
05-31 01:43:29.983: W/System.err(451): at java.net.InetAddress.lookupHostByName(InetAddress.java:513)
05-31 01:43:29.993: W/System.err(451): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:278)
05-31 01:43:29.993: W/System.err(451): at java.net.InetAddress.getAllByName(InetAddress.java:242)
05-31 01:43:30.003: W/System.err(451): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
05-31 01:43:30.013: W/System.err(451): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-31 01:43:30.013: W/System.err(451): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-31 01:43:30.024: W/System.err(451): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348)
05-31 01:43:30.033: W/System.err(451): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-31 01:43:30.043: W/System.err(451): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-31 01:43:30.043: W/System.err(451): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
【问题讨论】:
-
“失败”是非描述性的。他们都以同样的方式“失败”吗?你能发布失败(异常)是什么吗?
-
您缺少可以帮助我们诊断问题的其他信息 - 传递给 ctor 的字符串值在所有情况下都是相同的。
-
不确定我错过了什么,这可能是我遇到的问题。字符串值 应该 在每种情况下都相同 - 但它的行为方式并非如此。
-
我真的怀疑它是否会因为您正在连接字符串而失败,请尝试创建一个新 URL 并将字符串传递给它。然后将 URL 传递给 HTTPPost。看看它是否有效。
-
堆栈跟踪不是来自调用构造函数。请向我们展示更多代码。
标签: java eclipse http-post httpclient