热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javahttp数据传输_Java模拟发送http请求并传输JSON数据

前言近日在做安卓的服务端开发,由于对安卓一窍不通,又需要测试服务器功能,于是想着用java来模拟对服务器的请求。实现以JSON为主体的数据

前言

近日在做安卓的服务端开发,由于对安卓一窍不通,又需要测试服务器功能,于是想着用 java 来模拟对服务器的请求。实现以 JSON 为主体的数据交互。以下代码参考了zhuawang's blog。

代码

首先通过url建立一个连接

URL realUrl = new URL("123.123.123.123:8080/test/");

// 打开和URL之间的连接

URLConnection conn = realUrl.openConnection();

接着设置以下请求的属性

//注意在传送 json 数据时注意设置 Content-Type 的值

conn.setRequestProperty("Content-Type", "application/json");

conn.setRequestProperty("connection", "keep-alive");

// 传送 json 数据一般是用 POST

// 发送 POST 请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

最后写入要传输的参数

// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.write(param);

// flush输出流的缓冲

out.flush();

最后你可以看看发出的请求返回了什么样的响应结果

in = new BufferedReader(new InputStreamReader(

conn.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

完整逻辑代码

package com.amoyzhp.http;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import java.net.URLConnection;

import org.json.JSONObject;

public class HttpRequest {

public static String sendPost(String url, String param)

{

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

URL realUrl = new URL(url);

// 打开和URL之间的连接

URLConnection conn = realUrl.openConnection();

// 设置通用的请求属性

//注意在传送json数据时, Content-Type的值

conn.setRequestProperty("Content-Type",

"application/json");

conn.setRequestProperty("connection", "keep-alive");

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.write(param);

// flush输出流的缓冲

out.flush();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

System.out.println("发送 POST 请求出现异常!"+e);

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result;

}

public static void main(String[] args)

{

JSONObject obj = new JSONObject();

obj.put("username", "test1");

obj.put("password", "test1");

String url = "http://localhost:8080/JobHunter/login";

//发送 POST 请求

String str = HttpRequest.sendPost( url, obj.toString());

System.out.println(str);

}

}



推荐阅读
author-avatar
墙脚等红线_987
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有