在浏览器中发送HTTP命令有效,而不是在使用httppost发送时

时间:2015-07-08 19:47:18

标签: java http-post-vars

在我的浏览器中,我将以下字符串发送到控制单元http://192.168.0.215/i_activate/aterm?40~00,并激活继电器。

我尝试了以下几种变体:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.0.215/i_activate/aterm?40~00");

// Execute HTTP Post Request            
HttpResponse response = httpclient.execute(httppost);

使用HTML回复"失败"来自单位

我尝试过以多种方式添加40~00(NameValuePair等)并以不同形式编码但没有成功,但我确信问题就在那里。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

问题是浏览器发送GET请求,其中参数在URL本身作为查询字符串,但您发送的POST请求没有任何正文数据。

使用HttpGet代替HttpPost发送GET请求:

HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://192.168.0.215/i_activate/aterm?40~00");

// Execute HTTP Get Request
HttpResponse response = httpclient.execute(httpget);