android get请求json数据,Android get,post 方式请求json数据

本博客内容

实现get方式请求天气数据,请求到数据后的具体操作未写(如转为JSONObject)

实现post方式请求手机号的信息,同样,请求到数据后的具体操作未写(如转为JSONObject)

get方式请求json数据

MainActivity.java // 写

public String acceptData; //定义接受json数据信息的变量

//处理返回结果的函数,系统提供的类方法 //handler处理返回数据, 此方法,我写在onCreate()函数外。

Handler handler = new Handler(){ //此函数是属于MainActivity.java所在线程的函数方法,所以可以直接条调用MainActivity的 所有方法。

@Override

public void handleMessage(Message msg) {

if(msg.what==0x01){ //

//System.out.println("handleMessage():"+acceptData);

//可调用 Toast.makeText(MainActivity.this,"返回内容是:"+acceptData,Toast.LENGTH_SHORT)).show(); 来显示到UI

//每次数据读取完毕,将acceptData置空。 具体原因,当下还未理解

acceptData = ""; //

}else{

Toast.makeText(MainActivity.this, "请重新输入地址:", Toast.LENGTH_SHORT).show();

}

}

}

};

//发送天气请求,在其他地方进行调用

public void SendGetRequest(final String url,final String content) {

new Thread(){

@Override

public void run() {

//例如String pathString = "http://wthrcdn.etouch.cn/weather_mini?city="+"北京"; //请求天气信息

String pathString = url + content;

HttpURLConnection connection;

try {

URL url = new URL(pathString);

connection = (HttpURLConnection) url.openConnection();

connection.setRequestMethod("GET");

connection.connect();

//接受数据

if(connection.getResponseCode()==HttpURLConnection.HTTP_OK){

InputStream inputStream = connection.getInputStream();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"utf-8"));

String line;

while((line=bufferedReader.readLine())!=null){ //不为空进行操作

acceptData+=line;

}

System.out.println("接受到的数据:"+acceptData);

handler.sendEmptyMessage(0x01); //请求完毕,返回自己自定义的信息 id

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}.start();

}

post方式请求json数据

MainActiviti.java

//注:handler函数一样,所以只写对请求头进行部分修改。

//请求数据

public void sendRequestPost(final String url,final String phoneNumber){

new Thread(){

@Override

public void run() {

//如可以使用 String pathString = "https://way.jd.com/jisuapi/query4";

String pathString = url;

try {

URL url = new URL(pathString);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.setRequestMethod("POST");

connection.setDoInput(true);

connection.setDoOutput(true);

connection.setUseCaches(false);

connection.setInstanceFollowRedirects(true); //有误重定向

connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

OutputStream outputStream = connection.getOutputStream();

PrintStream printStream = new PrintStream(outputStream);

//例如这样写入参数 // phoneNumber为外部传入的手机号 后面为密匙

String submitData = "shouji="+phoneNumber+"&appkey=343c652c4127935f0b1f2ded76c6c68a";

printStream.print(submitData); //向服务器提交数据

//接受数据

if(connection.getResponseCode()==HttpURLConnection.HTTP_OK){

InputStream inputStream = connection.getInputStream();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"utf-8"));

String line;

while((line=bufferedReader.readLine())!=null){ //不为空进行操作

acceptData+=line;

}

handler.sendEmptyMessage(0x01); //向主线程返送

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}.start();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值