首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

android http通讯(二) 英译汉字典实例探究网络通信三种方法

2012-06-30 
android http通信(二) 英译汉字典实例探究网络通信三种方法方法一:HttpURLConnection??String res St

android http通信(二) 英译汉字典实例探究网络通信三种方法

方法一:HttpURLConnection??

String res = "";String urlstr = "http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx/getEnCnTwoWayTranslator?Word="+inword;//1.HttpURLConnection 测试成功 成功得到xml/*URL url =new URL(urlstr);  HttpURLConnection urlConn = (HttpURLConnection) url             .openConnection();// 打开连接,此处只是创建一个实力,并没有真正的连接       urlConn.connect();// 连接     InputStream input = urlConn.getInputStream();     InputStreamReader inputReader = new InputStreamReader(input);     BufferedReader reader = new BufferedReader(inputReader);     String inputLine = null;     StringBuffer sb = new StringBuffer();     while ((inputLine = reader.readLine()) != null) {         sb.append(inputLine).append("\n");     }     reader.close();     inputReader.close();     input.close();     urlConn.disconnect();       res = sb.toString();*/

?

方法二:HttpGet? HttpClient? HttpResponse? EntityUtils

//2.HttpPost/HttpGet 一般取得数据用Get就可以了,提交修改采用Post            HttpGet httpRequest = new HttpGet(urlstr);           //取得HttpClient对象                     HttpClient httpclient = new DefaultHttpClient();              //请求HttpClient,取得HttpResponse                    HttpResponse httpResponse = httpclient.execute(httpRequest);              //请求成功                    if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK)  {                //取得返回的字符串                        String strResult = EntityUtils.toString(httpResponse.getEntity());         res = strResult;       }else{       res="failed";       }

?

方法三:SoapObject? SoapSerializationEnvelope? AndroidHttpTransport

/* * 通过WebService  KSAOP 获得Webservice本地接口 直接调用方法 不用解析XML了 */public static String  getTranslateResultBySOAP(String inword) throws IOException, XmlPullParserException{// 命名空间String serviceNamespace = "http://WebXml.com.cn/";// 请求URLString serviceURL = "http://webservice.webxml.com.cn/WebServices/TranslatorWebService.asmx";// 调用的方法String methodName = "getEnCnTwoWayTranslator";// 实例化SoapObject对象SoapObject request = new SoapObject(serviceNamespace, methodName);request.addProperty("Word", inword);// 获得序列化的EnvelopeSoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = request;envelope.dotNet =true;///注意:这个属性是对dotnetwebservice协议的支持,如果dotnet的webservice 不指定rpc方式则用true否则要用false// envelope.setOutputSoapObject(request);(new MarshalBase64()).register(envelope);// Android传输对象AndroidHttpTransport ht = new AndroidHttpTransport(serviceURL);ht.debug = true;// 调用 没有WWWht.call(serviceNamespace+methodName, envelope);if (envelope.getResponse() != null) {SoapObject result = (SoapObject) envelope.bodyIn; int cnt = result.getPropertyCount();                        if (cnt > 0) { //服务的返回值是一个数组,第一个元素是oid,第二个是用户的显示名                               String  cn = result.getProperty(0).toString();                       //        String en= result.getProperty(1).toString();                              return cn;               }}return "failed";}

?

热点排行