以下是需要在Java / Android API调用中转换的c#代码:
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest req = (HttpWebRequest)base.GetWebRequest(uri);
if (req.Credentials != null)
{
NetworkCredential cred = req.Credentials.GetCredential(uri, "Username");
req.Headers.Add("XMS_LOGON_USER", cred.UserName);
req.Headers.Add("XMS_AUTH_PASSWORD", cred.Password);
req.Headers.Add("XMS_LICENSETYPE", "Device");
req.Headers.Add("XMS_DEVICE_NUM", XMSData.Device.Instance.DeviceNo());
req.Headers.Add("XMS_DEVICE_OEM", XMSData.Device.Instance.OEM());
req.Headers.Add("XMS_DEVICE_OS", XMSData.Device.Instance.OperatingSystem());
#if PROXYDEBUG
//this is for working with fiddler. Fiddler must be running when debugging in PROXYDEBUG configuration
req.Proxy = new WebProxy("ppp_peer", 8888);
#endif
if (cookieManager.CookieValues.Count > 0)
cookieManager.PublishCookies(req);
}
return req;
}
我无法理解这行代码,我怎么能在KSOAP2 android中传递它。
NetworkCredential cred = req.Credentials.GetCredential(uri,“Username”);
当我在标题中传递此信息时,API会抛出404错误。此API也是BasicHttpBinding,安全模式设置为“Transport”。
提前致谢。