HttpURLConnection的GET和POST解析
来源:互联网 发布:福州seo顾问培训 编辑:程序博客网 时间:2024/06/05 05:11
package com.kson.httpurlconnection;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.kson.httpurlconnection.bean.CarrierBean;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpActivity extends AppCompatActivity {
private final String mGetUrl = "http://v.juhe.cn/expressonline/getCarriers.php?key=1b9386e9428a7fe59db20867814caa2c";
private String mMethodName = "POST";
private final String mPostUrl = "http://v.juhe.cn/expressonline/getCarriers.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_http);
new Thread(new Runnable() {
@Override
public void run() {
postData();
}
}).start();
}
/**
* get方式请求数据,并处理数据的方法
*/
private void getData(){
try {
//线程安全,因为网络请求很可能需要用到多线程,所以我们用
StringBuffer result = new StringBuffer();
//创建URL对象,用于封装请求接口
URL url = new URL(mGetUrl);
//创建HttpURLConnection对象,用于连接请求,和处理请求过程中的相关数据
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(mMethodName);
//和服务器建立连接
connection.connect();
//根据服务器返回的响应码,做相关逻辑处理
if (HttpURLConnection.HTTP_OK==connection.getResponseCode()){
//客户端得到输入流
InputStream inputStream = connection.getInputStream();
//对输入流进行缓存封装
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//读取输入流的数据
String line = null;
while ((line=bufferedReader.readLine())!=null){
result.append(line);
}
System.out.println(result.toString());
}else{
int errorCode = connection.getResponseCode();
String errormsg = connection.getResponseMessage();
//
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* post方式请求数据
*/
private void postData(){
try {
StringBuffer result = new StringBuffer();
String parms = "key=1b9386e9428a7fe59db20867814caa2c&dtype=json";
URL url = new URL(mPostUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(mMethodName);
//支持输入流
connection.setDoInput(true);
connection.setDoOutput(true);
connection.connect();
DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());
dataOutputStream.writeBytes(parms);
dataOutputStream.flush();
dataOutputStream.close();
if (HttpURLConnection.HTTP_OK==connection.getResponseCode()){
//客户端得到输入流
InputStream inputStream = connection.getInputStream();
//对输入流进行缓存封装
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//读取输入流的数据
String line = null;
while ((line=bufferedReader.readLine())!=null){
result.append(line);
}
parseJson(result);
System.out.println(result.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 解析返回结果为bean对象
* @param result
*/
private void parseJson(StringBuffer result) {
try {
JSONObject object = new JSONObject(result.toString());
String reason = object.getString("reason");
System.out.println("reason:"+reason);
JSONArray array = object.getJSONArray("result");
if (array!=null&&array.length()>0){
for (int i = 0; i <array.length() ; i++) {
JSONObject obj = array.getJSONObject(i);
CarrierBean bean = new CarrierBean();
bean.carrier_code =obj.getString("carrier_code");
bean.carrier_name = obj.getString("carrier_name");
bean.carrier_phone = obj.getString("carrier_phone");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.kson.httpurlconnection.bean.CarrierBean;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpActivity extends AppCompatActivity {
private final String mGetUrl = "http://v.juhe.cn/expressonline/getCarriers.php?key=1b9386e9428a7fe59db20867814caa2c";
private String mMethodName = "POST";
private final String mPostUrl = "http://v.juhe.cn/expressonline/getCarriers.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_http);
new Thread(new Runnable() {
@Override
public void run() {
postData();
}
}).start();
}
/**
* get方式请求数据,并处理数据的方法
*/
private void getData(){
try {
//线程安全,因为网络请求很可能需要用到多线程,所以我们用
StringBuffer result = new StringBuffer();
//创建URL对象,用于封装请求接口
URL url = new URL(mGetUrl);
//创建HttpURLConnection对象,用于连接请求,和处理请求过程中的相关数据
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(mMethodName);
//和服务器建立连接
connection.connect();
//根据服务器返回的响应码,做相关逻辑处理
if (HttpURLConnection.HTTP_OK==connection.getResponseCode()){
//客户端得到输入流
InputStream inputStream = connection.getInputStream();
//对输入流进行缓存封装
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//读取输入流的数据
String line = null;
while ((line=bufferedReader.readLine())!=null){
result.append(line);
}
System.out.println(result.toString());
}else{
int errorCode = connection.getResponseCode();
String errormsg = connection.getResponseMessage();
//
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* post方式请求数据
*/
private void postData(){
try {
StringBuffer result = new StringBuffer();
String parms = "key=1b9386e9428a7fe59db20867814caa2c&dtype=json";
URL url = new URL(mPostUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(mMethodName);
//支持输入流
connection.setDoInput(true);
connection.setDoOutput(true);
connection.connect();
DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());
dataOutputStream.writeBytes(parms);
dataOutputStream.flush();
dataOutputStream.close();
if (HttpURLConnection.HTTP_OK==connection.getResponseCode()){
//客户端得到输入流
InputStream inputStream = connection.getInputStream();
//对输入流进行缓存封装
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//读取输入流的数据
String line = null;
while ((line=bufferedReader.readLine())!=null){
result.append(line);
}
parseJson(result);
System.out.println(result.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 解析返回结果为bean对象
* @param result
*/
private void parseJson(StringBuffer result) {
try {
JSONObject object = new JSONObject(result.toString());
String reason = object.getString("reason");
System.out.println("reason:"+reason);
JSONArray array = object.getJSONArray("result");
if (array!=null&&array.length()>0){
for (int i = 0; i <array.length() ; i++) {
JSONObject obj = array.getJSONObject(i);
CarrierBean bean = new CarrierBean();
bean.carrier_code =obj.getString("carrier_code");
bean.carrier_name = obj.getString("carrier_name");
bean.carrier_phone = obj.getString("carrier_phone");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
阅读全文
1 0
- HttpURLConnection的GET和POST解析
- httpclient的post和get,httpurlconnection的post和get
- HttpURLConnection的post和Get方法
- HttpURLConnection的get和post请求
- HttpUrlConnection的GET请求和POST请求
- HttpURLConnection的GET和POST请求
- HttpURLConnection的GET和POST用法
- android的HttpURLConnection实现post和get
- HttpURLConnection的get和post请求实例
- httpurlconnection的Get请求和Post请求
- HttpUrlConnection的get和post请求方法
- HttpURLConnection的GET和POST请求方式
- Java HttpURLConnection的post和get请求
- HttpURLConnection的get和post请求实例
- HttpURLConnection post和get用法
- HttpUrlConnection post和get请求
- HttpURLconnection/get和post请求
- HttpUrlConnection的简单使用--get和post的简单使用
- 51Nod-1239-欧拉函数之和
- eclipse 把当前git目录中项目关联上git
- Android Studio中Git的配置及协同开发
- UE4 World Setting---Level的“World Setting” 重点设置 (随记系列3_World Setting)
- 项目运行报错,service注解无效
- HttpURLConnection的GET和POST解析
- 浅谈设计模式及其适用情景
- HDU 1754-I Hate It(线段树单节点更新)
- 关于WebRTC初接触
- uva 1149 Bin Packing(贪心)
- mybatis学习之路(三)
- HttpUrlConnection使用方法封装工具类
- ADO.NET 快速入门(二):执行命令
- 欢迎使用CSDN-markdown编辑器