問題我有以下代碼,它調用.net web服務。代碼連接到服務正常,但參數(deviceid)似乎沒有通過。該方法簡單地返回始終爲空的傳遞的deviceid。將簡單字符串參數傳遞給.net webservice
這是告訴我deviceid參數沒有被傳遞。我以爲我看到有人推薦使用數據包嗅探器來查看傳出的XML,但似乎無法記住它是什麼。有人可以提出一個我可以與日蝕和窗口結合使用。
活動代碼
String deviceid = tManager.getDeviceId();
SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);
PropertyInfo pi = new PropertyInfo();
pi.setName("deviceid");
pi.type = PropertyInfo.STRING_CLASS;
pi.setValue(deviceid.toString());
request.addProperty(pi);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(URL);
try{
ht.call(SOAP_ACTION, soapEnvelope);
SoapPrimitive result = (SoapPrimitive) soapEnvelope.getResponse();
Toast.makeText(ctx, "result = " + result.toString(), Toast.LENGTH_SHORT).show();
}catch(Exception e){
e.printStackTrace();
Toast.makeText(ctx, "error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
Web服務代碼
<WebMethod()> _
Public Function CheckTrial(ByVal deviceid As String) As String
Return deviceid
End Function
我,試過一切,並不能找出如何解決這個問題。有沒有人有任何建議嘗試?
XML從電線鯊魚spy'ed發送:
POST /android_service_test.asmx HTTP/1.1
Host: ikonicsoft.com
user-agent: kSOAP/2.0
soapaction: http://ikonicsoft.com/CheckTrial
content-type: text/xml
connection: close
content-length: 421
<?xml version="1.0" encoding="UTF-8"?>
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns:d="http://www.w3.org/2001/XMLSchema"
xmlns:c="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
<v:Header />
<v:Body>
<CheckTrial xmlns="http://ikonicsoft.com" id="o0" c:root="1">
<deviceid i:type="d:string">000000000000000</deviceid>
</CheckTrial>
</v:Body>
</v:Envelope>
HTTP/1.1 200 OK
Connection: close
Date: Mon, 21 Jun 2010 16:35:10 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: PleskWin
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Set-Cookie: .ASPXANONYMOUS=fnyqjfFHywEkAAAAZGVjYjZmNTEtNWNiYi00YTIwLWEzYzktNzUxZDNjMDA0OGY00;
expires=Mon, 30-Aug-2010 03:15:09 GMT; path=/; HttpOnly
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 299
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CheckTrialResponse xmlns="http://ikonicsoft.com/" />
</soap:Body>
</soap:Envelope>
感謝
帕特里克
好吧,這似乎是微軟方面的問題。我可以將deviceid附加到像「deviceid =」&deviceid這樣的字符串,它將返回「deviceid =」,但不是實際傳遞的參數 – bugzy 2010-06-23 17:48:04
我將此內容發佈到http://forums.asp.net的ASP.NET論壇。 /t/1571816.aspx – bugzy 2010-06-23 17:49:27