解决方案 »
- 如何监听短信会话(对话)的删除
- android 多级列表实现求助!!!类似于ios
- framework关于phonewindow.java的onConfigurationChanged()函数
- Android动态显示时间问题(请高手帮忙看一下)
- AlertDialog.Builder listview SimpleCursorAdapter删除项问题
- sax解析xml问题
- 请教一个问题——是关于android的
- 求大神,我想在两个RadioButton控件间连一条线
- 关于AndroidSDK5.0的问题
- 请问设计基于安卓的图书馆座位管理系统需要哪些技术,实现身份识别IC卡和指纹哪个更好实现
- 新人刚刚接触android 虚拟机的配置问题。。
- 关于IOS和Android webview 打开网页里的附件
soap协议只是用来封装消息用的
SOAP协议= HTTP协议+ XML数据格式
可以使用httpClient 访问webService吗
可以使用httpClient 访问webService吗
可以的, 要拼接SOAP协议
两者都可以的话,他们有啥区别?什么情况下用哪个?我个人觉得, 如果不支持http get和post请求的话,用soap, 支持的话可以用httpclient
可以使用httpClient 访问webService吗
可以的, 要拼接SOAP协议我现在都有点迷糊了,我贴一段代码,你帮我看下这个是不是访问webService的工具方法?
每次做项目都是直接用这个方法call API,知道怎么做但是不知道为什么。。public static String post(Activity activity, HashMap<String, String> paramer) { SysApplication sysApplication = (SysApplication) activity.getApplication();
String method = paramer.get("method");
HttpPost httpRequest = new HttpPost(Utils.getServerUrl(activity) + File.separator + service + File.separator + method);
System.out.println("url--->"+(Utils.getServerUrl(activity) + File.separator + service + File.separator + method));
httpRequest.addHeader("User-Agent", sysApplication.getUserAgentString());
String strResult = ""; /*
* post运行,传递变量必须使用NameValuePair[]数组存储,通过HttpRequest.setEntity()方法来发送HTTP请求
* .
*/
List<NameValuePair> params = new ArrayList<NameValuePair>(); if (paramer.size() >= 2) {
for (Map.Entry<String, String> m : paramer.entrySet()) {
params.add(new BasicNameValuePair(m.getKey(), m.getValue()));
}
}
/* 发送HTTP request */
try {
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); /* 取得HTTP response */
HttpResponse httpResponse = (HttpResponse) getNewHttpClient().execute(httpRequest);
// System.out.println("狀態嗎---->"+(httpResponse.getStatusLine().getStatusCode()));
/* 若状态码为200 ok */
if (httpResponse.getStatusLine().getStatusCode() == 200) {
/* 取出答应字符串 */
strResult = EntityUtils.toString(httpResponse.getEntity(), "UTF-8").replaceAll("\\r", "").replaceAll("\\n", "");
System.out.println("得到Server返回的內容是 ===>" + strResult);
// if (strResult.trim().equals("F")) {
// return "";
// } else {
return strResult != null ? strResult : "";
//
// } }
}
catch (Exception e) {
e.printStackTrace();
Log.d("Exception", e.getMessage() + "");
return "";
}
return "";
} public static HttpClient getNewHttpClient() {
try {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null); SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
/**
* 設定10秒連接超時
*/
params.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
params.setParameter(CoreConnectionPNames.SO_TIMEOUT, 30000); SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 8080));
registry.register(new Scheme("https", sf, 443));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
return new DefaultHttpClient(ccm, params);
}
catch (Exception e) {
e.printStackTrace();
Log.i("HttpPost", e.getMessage());
return new DefaultHttpClient();
}
}
两者都可以的话,他们有啥区别?什么情况下用哪个?我个人觉得, 如果不支持http get和post请求的话,用soap, 支持的话可以用httpclient你帮我看下我上面贴的那段代码是访问WebService的吗?我做一些项目,对方服务器提供接口,我用这段代码去call API,
这样算是访问webService吗