安卓访问.net的webserver时报错

瓶子君i 2016-06-02 10:42:05
用的异步加载,但是每次提示获得的是空值,
底下贴出了具体代码,望解决,谢谢;

异常:
06-02 10:35:43.903 705-705/com.example.mytest602 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.mytest602, PID: 705
java.lang.NullPointerException: lock == null
at java.io.Reader.<init>(Reader.java:64)
at java.io.InputStreamReader.<init>(InputStreamReader.java:77)
at com.example.mytest602.MainActivity.Inputstr2Str_Reader(MainActivity.java:84)
at com.example.mytest602.MainActivity$1.onClick(MainActivity.java:52)
at android.view.View.performClick(View.java:4909)
at android.view.View$PerformClick.run(View.java:20390)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5742)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1104)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
06-02 10:35:43.985 705-705/com.example.mytest602 I/Process: Sending signal. PID: 705 SIG: 9




异步代码:

protected InputStream doInBackground(Void... params) {


ArrayList<String> paramList = new ArrayList<String>();
ArrayList<String> parValueList = new ArrayList<String>();
// ArrayList<APPinfo> resultList = new ArrayList<APPinfo>();

paramList.add("Code");

parValueList.add("BAFAL000FFAFD");


Log.i("++++++++",Appconfig.methodName);

webserver = new Webserver();
InputStream inputStream = webserver.getwebsever(Appconfig.methodName,paramList,parValueList);


Log.i("+++++","123");

return inputStream;

}


访问web代码:
 public InputStream getwebsever(String methodName, ArrayList<String> Parameters, ArrayList<String> ParValues){


//Service1.asmx是指提供服务的页面
String ServerUrl = "http://199.234.20.36:8033/Service1.asmx";

String soapAction = "http://tempuri.org/" + methodName;


Log.i("+++++",soapAction);

//String data = "";
String soap = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<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/\">"
+ "<soap:Body />";

String tps, vps, ts;
String mreakString = "";

mreakString = "<" + methodName + " xmlns=\"http://tempuri.org/\">";
for (int i = 0; i < Parameters.size(); i++) {
tps = Parameters.get(i).toString();
//设置该方法的参数为.net webService中的参数名称
vps = ParValues.get(i).toString();
ts = "<" + tps + ">" + vps + "</" + tps + ">";
mreakString = mreakString + ts;
}
mreakString = mreakString + "</" + methodName + ">";
/*
+"<HelloWorld xmlns=\"http://tempuri.org/\">"
+"<x>string11661</x>"
+"<SF1>string111</SF1>"
+ "</HelloWorld>"
*/
String soap2 = "</soap:Envelope>";
String requestData = soap + mreakString + soap2;


Log.i("+++++",requestData);

//System.out.println(requestData);

try {
URL url = new URL(ServerUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
byte[] bytes = requestData.getBytes("utf-8");
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setConnectTimeout(6000);// 设置超时时间
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "text/xml;charset=utf-8");
con.setRequestProperty("SOAPAction", soapAction);
con.setRequestProperty("Content-Length", "" + bytes.length);
OutputStream outStream = con.getOutputStream();
outStream.write(bytes);
outStream.flush();
outStream.close();
InputStream inStream = con.getInputStream();

Log.i("+++++",inStream.toString());

return inStream;

} catch (Exception e) {
System.out.print("2221");
return null;
}

}
...全文
104 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
瓶子君i 2016-06-17
  • 打赏
  • 举报
回复
没人回答,自己结贴吧;

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧