Android 经过http协议数据交互
Android 通过http协议数据交互
方式一:HttpPost(import org.apache.http.client.methods.HttpPost)
java代码:
复制代码
方式二:HttpURLConnection、URL(import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;)
java代码:
复制代码
方式一:HttpPost(import org.apache.http.client.methods.HttpPost)
java代码:
-
-
private Button button1, button2, button3;
-
private TextView textView1;
-
-
-
button1.setOnClickListener(new Button.OnClickListener() {
-
-
-
@Override
-
-
public 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 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 request
-
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
-
// 取得HTTP response
-
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
-
-
-
// 若状态码为200 ok
-
if (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;)
java代码:
-
-
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();
-
}
-
-
-
}
相关推荐
- Android之基于HTTP协议的上载(转载)
- c语言http协议响应数据中文乱码如何解决
- 关于android流媒体视频的rtsp和http协议的2个有关问题
- 经过UPnP协议发现NAS-Android篇
- WEB点对点程序传输数据,是用HTTP协议?仍是TCP/IP协议
- web服务交互中HTTP数据内容GZIP,ZLIB格式压缩与解压缩打包(共享)
- Android-----WebView加载HTML界面布局并进行数据交互
- android客户端和网站数据交互的实现(基于Http协议获取数据方法)
- Android 应用开发 之经过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
- 20199308 2019-2020-2 《网络攻防实践》第4周作业 (:」∠)_ 此作业所属课程:2019-2020-2-1991&1993《网络攻防实践》 本次作业要求:第四次作业 网络嗅探与协议分析 课程目标:学习网络攻防实践 本次作业在哪个方面帮助我实现目标:第四章 网络嗅探与协议分析 一、实践内容 1.1 网络嗅探 1.1.1 网络嗅探技术定义 Sniff,是一种黑客常用的窃听技术,利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。实现网络嗅探技术的工具称为网络嗅探器(Sniffer),嗅探器捕获的数据报文是经过封包处理之后的二进制数据,因此通常会结合网络协议分析技术来解析嗅探到的网络数据,这样才能恢复出TCP/IP协议栈上各层网络协议的内容,以及实际发送的应用层信息。 1.1.2 网络嗅探的原理 网络嗅探的底层技术原理根据所监听的网络类型不同也具有一定的差异 以太网工作原理:以太网通过使用CSMA/CD协议的共享通信信道进行消息传输
- js判断现阶段网络连接
- executescalar连接的现阶段状态为已连接