我在同一活動中調用兩個Web服務時遇到了一個奇怪的問題。 雖然我打電話給Web服務的兩種方法一個接一個給了我一個例外。 一切都是正確的,我不知道這個問題。 有人遇到過這個問題嗎? 普萊斯給我一些建議...在同一活動中調用Web服務中的兩種方法,併發出異常
這是代碼調用Web服務:
public static String getRelatedVideoResponse(String request, String url,
String action, String method, String namespace, String value) {
try {
System.setProperty("http.keepAlive", "false");
URL u = new URL(url);
URLConnection uc = u.openConnection();
HttpURLConnection connection = (HttpURLConnection) uc;
connection.setRequestProperty("connection", "close");
connection.setUseCaches(false);
connection.setConnectTimeout(30000);
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestProperty("SOAPAction", action);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type",
"text/xml;charset=UTF-8");
OutputStream out = connection.getOutputStream();
Writer wout = new OutputStreamWriter(out);
wout.write(request);
wout.flush();
wout.close();
Log.e("before buffer","buffer");
BufferedReader rd = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
Log.e("buffer",rd+"");
Log.e("code...", connection.getResponseCode() + "");
while ((StaticUtils.sRelResult = rd.readLine()) != null) {
Log.e("result", StaticUtils.sRelResult);
return StaticUtils.sRelResult;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
Log.e("error occured", "here");
e.printStackTrace();
}
return StaticUtils.sRelResult;
}
活動:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.searchvideos);
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case SUCCESS:
s = "<tns:int xmlns:tns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">";
t = "</tns:int>";
buffer.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
buffer.append("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns=\"http://tempuri.org/\">");
buffer.append("<soap:Body><GetScoresForVideos><videoIDs>");
for (int i = 0; i < StaticUtils.sAlRelId.size(); i++) {
buffer.append(s + StaticUtils.sAlRelId.get(i) + t);
}
buffer.append("</videoIDs>");
buffer.append("</GetScoresForVideos></soap:Body></soap:Envelope>");
Log.e("bufer string", buffer.toString());
WsdlService s = new WsdlService();
s.getRelatedVideoResponse(buffer.toString(),
StaticUtils.URL, StaticUtils.RATE_ACTION,
StaticUtils.RATE_METHOD, StaticUtils.NAMESPACE, "");
break;
}
};
download();
}
private void download() {
Runnable r = new Runnable() {
public void run() {
if (StaticUtils.checkNetworkStatus(getApplicationContext()) == true) {
WsdlService service = new WsdlService(
StaticUtils.NAMESPACE,
StaticUtils.RELATED_METHOD_NAME, StaticUtils.URL,
StaticUtils.RELATED_SOAP_ACTION);
String str = service.getResponseById(Integer
.valueOf(videoId));
Log.e("Related videos", str);
RelatedParser parser = new RelatedParser(str);
parser.parseRelatedVideos();
onSuccessDownload();
} else {
onFailureDownload();
}
}
};
Thread t = new Thread(r);
t.start();
}
public void onSuccessDownload() {
mHandler.sendEmptyMessage(SUCCESS);
}
的例外是:
12-05 14:55:11.604: WARN/System.err(3075): java.io.FileNotFoundException: http://192.80.62:48080/Services/v0.2.2/SampleService.svc?wsdl
12-05 14:55:11.613: WARN/System.err(3075): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:1162)
12-05 14:55:11.613: WARN/System.err(3075): at com.utils.WsdlService.getRelatedVideoResponse(WsdlService.java:180)
12-05 14:55:11.613: WARN/System.err(3075): at com.scopra.screens.RelatedVideos$2.handleMessage(RelatedVideos.java:146)
12-05 14:55:11.613: WARN/System.err(3075): at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 14:55:11.613: WARN/System.err(3075): at android.os.Looper.loop(Looper.java:123)
12-05 14:55:11.613: WARN/System.err(3075): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-05 14:55:11.613: WARN/System.err(3075): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 14:55:11.613: WARN/System.err(3075): at java.lang.reflect.Method.invoke(Method.java:521)
12-05 14:55:11.613: WARN/System.err(3075): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-05 14:55:11.623: WARN/System.err(3075): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-05 14:55:11.623: WARN/System.err(3075): at dalvik.system.NativeStart.main(Native Method)
謝謝,
當您一次調用一項服務時會發生什麼功能正常? – ingsaurabh
一切都是正確的only.if我運行它們在不同的活動中我得到的迴應,但如果我嘗試在同一活動中運行2方法的Web服務第一種方法只給我第二種方法的響應我越來越以上例外。 – Taruni
好吧,然後發佈你的相關代碼,你是否關閉流後,你完成了他們,即關閉輸入流? – ingsaurabh