方式一:HttpPost(import org.apache.http.client.methods.HttpPost)

private Button button1, button2, button3;private TextView textView1;button1.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub// URLַ// String uriAPI =// "http://www.dubblogs.cc:8751/Android/Test/API/Post/index.php";String uriAPI = "http://172.20.0.206:8082//TestServelt/login.do";/* 建立HTTP Post连线 */HttpPost httpRequest = new HttpPost(uriAPI);// Post运作传送变数必须用NameValuePair[]阵列储存// 传参数 服务端获取的方法为request.getParameter("name")List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("name", "this is post"));try {// 发出HTTP requesthttpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));// 取得HTTP responseHttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);// 若状态码为200 okif (httpResponse.getStatusLine().getStatusCode() == 200) {// 取出回应字串String strResult = EntityUtils.toString(httpResponse.getEntity());textView1.setText(strResult);} else {textView1.setText("Error Response" + httpResponse.getStatusLine().toString());}} catch (ClientProtocolException e) {textView1.setText(e.getMessage().toString());e.printStackTrace();} catch (UnsupportedEncodingException e) {textView1.setText(e.getMessage().toString());e.printStackTrace();} catch (IOException e) {textView1.setText(e.getMessage().toString());e.printStackTrace();}}});

方式二:HttpURLConnection、URL(import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;)

private void httpUrlConnection() {try {String pathUrl = "http://172.20.0.206:8082/TestServelt/login.do";// 建立连接URL url = new URL(pathUrl);HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();// //设置连接属性httpConn.setDoOutput(true);// 使用 URL 连接进行输出httpConn.setDoInput(true);// 使用 URL 连接进行输入httpConn.setUseCaches(false);// 忽略缓存httpConn.setRequestMethod("POST");// 设置URL请求方法String requestString = "客服端要以以流方式发送到服务端的数据...";// 设置请求属性// 获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致byte[] requestStringBytes = requestString.getBytes(ENCODING_UTF_8);httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length);httpConn.setRequestProperty("Content-Type", "application/octet-stream");httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接httpConn.setRequestProperty("Charset", "UTF-8");//String name = URLEncoder.encode("黄武艺", "utf-8");httpConn.setRequestProperty("NAME", name);// 建立输出流,并写入数据OutputStream outputStream = httpConn.getOutputStream();outputStream.write(requestStringBytes);outputStream.close();// 获得响应状态int responseCode = httpConn.getResponseCode();if (HttpURLConnection.HTTP_OK == responseCode) {// 连接成功// 当正确响应时处理数据StringBuffer sb = new StringBuffer();String readLine;BufferedReader responseReader;// 处理响应流,必须与服务器响应流输出的编码一致responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), ENCODING_UTF_8));while ((readLine = responseReader.readLine()) != null) {sb.append(readLine).append("\n");}responseReader.close();tv.setText(sb.toString());}} catch (Exception ex) {ex.printStackTrace();}}

补充:

标准的http post传输方式,以上面为例子,如下:

requestStringBytes =“customerId=3461&nickName=黄&email=linafei1111@163.com&areaCode=0592&cityCode=350200&registerPhone=18906051120服务端通过getParamer("customerId")获取。

如果把参数值放在URL,例如http://172.20.0.206:8082/TestServelt/login.do?customerId=3461&nickName=黄&email=linafei1111@163.com&areaCode=0592&cityCode=350200&registerPhone=18906051120

虽然是以post方式传输,但是实际上还是以get方式提交

更多相关文章

  1. Android LayoutInflater的几种获得方式
  2. Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、
  3. Android获取View的高宽的方式
  4. Android 通过Post方式提交数据
  5. android启动方式
  6. android中进行https连接的方式
  7. android将对象写入文件和从文件中读取对象数据
  8. android 向SD卡写入数据
  9. Android之常见数据类型

随机推荐

  1. Android(安卓)Studio下多渠道打包
  2. Android(安卓)机顶盒Mobx 对接xbmc
  3. 在Android中查看和管理sqlite数据库
  4. android studio 60音乐播放器 下载音乐
  5. [转载]Android知识体系总结(全方面覆盖An
  6. Android平台上的MDM (Mobile Device Mana
  7. 向模拟器发短信打电话的方法
  8. Android(安卓)基于Android(安卓)blockly
  9. android sdk+eclipse+adt 配置与开发
  10. Android(安卓)Activity (一)