如何发送HTTP POST请求并接收响应?
问题描述:
我打算创建适用于CommuniGate Pro服务器的移动应用程序。如何发送HTTP POST请求并接收响应?
例如,我需要做下面的Android客户端C
- CGP服务器S
交谈,并得到XIMSS.nonce
节点值:
C:GET /ximsslogin/ HTTP/1.1
Host: myserver.com
Content-Type: text/xml
Content-Length: 42
<XIMSS><listFeatures id="list" /><XIMSS>
S:HTTP/1.1 200 OK
Content-Length: 231
Connection: keep-alive
Content-Type: text/xml;charset=utf-8
Server: CommuniGatePro/5.3
<XIMSS><nonce>2C3E575E5498CE63574D40F18D00C873</nonce><language>german</language><response id="s"/></XIMSS>
例如,在ActionScript 3.0,它看起来是这样的:
var loader:Loader = new Loader();
loader.addEventListener(Event.COMPLETE, completeHandler);
var urlRequest:URLRequest = new URLRequest(...);
urlRequest.method = ...;
urlRequest.data = ...;
loader.load(urlRequest);
private function completeHandler(...):void { ... };
它如何在Java中看Android 2.1?
答
正如Schnapple所说,你的问题看起来很宽泛,并且让人难以理解。
下面是一些通用代码,用于发送HTTP POST并从服务器获取响应,尽管这可能会有所帮助。
public String postPage(String url, File data, boolean returnAddr) {
ret = null;
httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109);
httpPost = new HttpPost(url);
response = null;
FileEntity tmp = null;
tmp = new FileEntity(data,"UTF-8");
httpPost.setEntity(tmp);
try {
response = httpClient.execute(httpPost,localContext);
} catch (ClientProtocolException e) {
System.out.println("HTTPHelp : ClientProtocolException : "+e);
} catch (IOException e) {
System.out.println("HTTPHelp : IOException : "+e);
}
ret = response.getStatusLine().toString();
return ret;
}
+0
当我使用这种方法时,我从我的服务器得到的响应是“图像未提供”。如何解决这个问题? – includeMe 2011-03-31 09:44:03
我相信你会需要更详细地说明,以获得任何有意义的援助。 – 2010-06-14 15:19:31