我尝试了http://www.helloandroid.com/tutorials/using-ksoap2-android-and-parsing-output-data中的示例来获取来自 wsdl 服务的请求和响应。当我尝试无代理时,它工作正常。但是当我在代理后面工作时,我得到“操作超时:请求时间失败:java.net.SocketException”有没有办法将代理设置为 SoapObject 或 Soap Envelop?
问问题
3195 次
4 回答
2
Ksoap 不能在代理后面工作。为了使它工作.. 从 sourceforge 下载 HttpTransportSE.java 和 ServiceConnectionSE.java。
使用 HttpTransportSE 和 ServiceConnectionSE 创建一个包。
在 ServiceConnectionSE 构造函数中:
String myProxy=android.net.Proxy.getDefaultHost() ;
int myPort=android.net.Proxy.getDefaultPort();
if(myProxy!=null){
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(myProxy, myPort));
connection = (HttpURLConnection) new URL(url).openConnection(proxy);
}
else
{
connection = (HttpURLConnection) new URL(url).openConnection();
}
现在无论我们调用 HttpTransportSE.call() 方法,请确保它指向您自己的包含这两个文件的包。
于 2011-02-14T11:40:27.063 回答
1
大家好, KSOAP2.6.5 的最新版本 [已测试并验证] 已修复代理身份验证问题。构造HTTPTransportSE
函数现在接受java.net.Proxy
实例作为参数以及 URL。该方法类似于
HttpTransportSE httpTransport=new HttpTransportSE(proxy,URL);
如果您的代理已配置并且需要身份验证,则使用
Authenticator
类来设置您的代理凭据并成功。HTH,如果不给我回信
于 2012-06-29T21:16:16.233 回答
0
据我所知,您必须自己在 android 操作系统设置中设置代理,它才能正常工作。
于 2011-02-03T18:10:45.573 回答
0
换成这个..
//Timeout in milliseconds
int timeout=60000;
AndroidHttpTransport androidHttpTransport=new AndroidHttpTransport(url, timeout);
于 2012-03-07T11:48:52.060 回答