WebServiceHttpUtils 封装
package com.xlm.whassister.server;
import android.text.TextUtils;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpResponseException;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.util.Map;
public class WebServiceHttpUtils {
private static final String TAG = WebServiceHttpUtils.class.getSimpleName();
public static String call(String serviceNameSpace, String serviceUrl, String mathodName, boolean isHasParameters,
Map<String,Object> parameters)
{
SoapObject request = new SoapObject(serviceNameSpace,mathodName);
if(isHasParameters && parameters != null)
{
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (!TextUtils.isEmpty(key) && value != null) {
request.addProperty(key, value);
}
}
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapSerializationEnvelope.VER11);
envelope.bodyOut = request;
envelope.dotNet = true;
HttpTransportSE httpTransportSE = new HttpTransportSE(serviceUrl);
try {
httpTransportSE.call("\"" + serviceNameSpace + mathodName + "\"",envelope);
SoapObject soapObject = (SoapObject) envelope.bodyIn;
String respoend = soapObject.getProperty(0).toString();
return respoend;
} catch (HttpResponseException e) {
e.printStackTrace();
return e.getMessage();
} catch (XmlPullParserException e) {
e.printStackTrace();
return e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return e.getMessage();
}catch (java.lang.ClassCastException e) {
e.printStackTrace();
return e.getMessage();
}
}
}
BaseApplication封装
public class BaseApplication {
public static Context context;
private static Retrofit mRetrofit;
private static BaseApplication sInstence;
// 命名空间
public static final String nameSpace = "http://tempuri.org/";
// serviceUrl
public static final String serviceUrl = "http://192.168.10.103/UAXLMService/PdaService.asmx";
//login
public static final String LOGIN_METHODNAME = "PdaLogin";
public static final String SCANWHIN_METHODNAME = "GetInfoByCode";
public static BaseApplication getInstence() {
return sInstence;
}
}
调用
class LoginTask extends AsyncTask<LoginReqDto, Void, String> {
@Override
protected String doInBackground(LoginReqDto... loginReqDto) {
Map<String, Object> map = new HashMap<>();
map.put("name", loginReqDto[0].getUserName());
map.put("pass", loginReqDto[0].getPassWord());
map.put("orgCode", loginReqDto[0].getOrgCode());
String result = WebServiceHttpUtils.call(BaseApplication.nameSpace, BaseApplication.serviceUrl, BaseApplication.LOGIN_METHODNAME, true, map);
return result;
}
@Override
protected void onPostExecute(String result) {
dismissLoading();
Gson gson = new Gson();
try {
JSONObject root = new JSONObject(result);
String rst = root.getString("rst");
String msg = root.getString("msg");
if (rst.equals("1")) {
Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_LONG).show();
} else {
JSONArray data = root.getJSONArray("WhList");
List<WhBean> WhBeans = gson.fromJson(data.toString(), new TypeToken<List<WhBean>>() {
}.getType());
Gloab.getInstance().setWhBeans(WhBeans);
Toast.makeText(LoginActivity.this, "登录成功!", Toast.LENGTH_LONG).show();
jumpToMainAct();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(LoginActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}