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

Java 在浏览器中发送HTTP命令有效,而不是在使用httppost发送时,java,http-post-vars,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

在我的浏览器中,我将以下字符串发送到我拥有的控制单元
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响应“FAIL”

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


有什么想法吗?

问题是浏览器发送了一个
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);

很明显,浏览器和您的软件都发送相同的内容-请参阅
wireshark
,了解协议窥探器,它将准确显示发送的内容。(或查看您的web服务器日志)如果您使用的是现代web浏览器,我建议您使用fiddler而不是WireShark。你能为我自己和其他用户提供http帖子的正确格式吗?谢谢你的回答。