我正在为android项目使用ksoap2。但服务器代码(不能更改)是旧的,需要在HTTP标头上的标头中发送一些属性。
服务器使用soap,所以我决定在android中使用ksoap2,但我找不到任何如何设置ksoap2请求的http头的示例(不在soap信封内,而是在httpheader内)。
有可能吗?
如果可能的话,有人能给我举个例子吗?
HTTP头可以在org.ksoap2.transport.call(String,SoapEnvelope,List,File)方法中修改。
编辑
调用HttpTransportSE.call()
时可以直接传递额外的标头
示例:
.
.
.
List<HeaderProperty> headers;
headers.add(new HeaderProperty("Content-Type", "utf8"));
headers.add(new HeaderProperty("Accept", "text/html"));
HttpTransportSE httpTransport = new HttpTransportSE(_soapAddress);
httpTransport.call(soapAction, envelope, headers);
.
.
.
您可以检索连接对象并在其中添加标头。
HttpTransportSE transport = new HttpTransportSE(url,timeout);
ServiceConnection conn = transport.getConnection();
conn.setRequestProperty("Accept-Encoding", "utf-8");
//and others...