android中http访问总结
16lz
2021-01-23
在进行,android访问tomcat服务器时候,开发的基本步骤
1.使用URL访问指定的网络资源
URL url = new URL(“HTTP://.........”);InputStream ins = url.openStream();
2.使用URLConnection提交请求
A.通过调用url对象的openConnection()方法来创建URLConnection对象
B.设置URLConnection的参数和普通请求属性
Get请求
/** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param params * 请求参数,请求参数应该是name1=value1&name2=value2的形式。 * @return URL所代表远程资源的响应 */ String urlName = url + "?" + params;URL realUrl = new URL(urlName);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 建立实际的连接conn.connect();// 获取所有响应头字段Map<String, List<String>> map = conn.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()){System.out.println(key + "--->" + map.get(key));}// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null){result += "\n" + line;}
Post请求:
/** * 向指定URL发送POST方法的请求 * * @param url * 发送请求的URL * @param params * 请求参数,请求参数应该是name1=value1&name2=value2的形式。 * @return URL所代表远程资源的响应 */ PrintWriter out = null;BufferedReader in = null;String result = ""; URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(params);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null){result += "\n" + line;}
利用ApacheHttpClient发送get和post请求
// 创建DefaultHttpClient对象httpClient = new DefaultHttpClient();// 创建一个HttpGet对象HttpGet get = new HttpGet("http://192.168.1.88:8888/foo/secret.jsp");// 发送GET请求HttpResponse httpResponse = httpClient.execute(get);HttpEntity entity = httpResponse.getEntity();// 读取服务器响应BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));String line = null;response.setText("");while ((line = br.readLine()) != null){// 使用response文本框显示服务器响应response.append(line + "\n");}
发送post请求:
HttpPost post = new HttpPost("http://192.168.1.88:8888/foo/login.jsp"); // 如果传递参数个数比较多的话可以对传递的参数进行封装 List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("name", name));params.add(new BasicNameValuePair("pass", pass)); // 设置请求参数post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));// 发送POST请求HttpResponse response = httpClient.execute(post);// 如果服务器成功地返回响应if (response.getStatusLine.getStatusCode() == 200){String msg = EntityUtils.toString(response.getEntity());// 提示登录成功Toast.makeText(HttpClientTest.this,msg, 5000).show();}
更多相关文章
- Android Jetpack应指南学习笔记8——Navigation(二)使用safe arg
- IntentService通过HandlerThread单独开启一个线程来处理所有Inte
- Android上下文对象Context
- Android - 向服务器发送数据(POST) - HTTPClient.
- Android从远程服务器下载文件到本地sd卡中
- android上传图片和参数(属性)到服务器
- Eclipse开发简易的Android服务器
- 【demo记录】极光推送(android app访问服务器,服务器推送信息到新a
- Android上传图片到服务器,android-async-http上传图片到服务器