使用 Http 的 Post 方式与网络交互通信

1.项目截图

 2.TestPost.java

package testhttppost;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
* 测试http--post访问
* @author xjj13
*
*/
public class TestPost {
public static void main(String[] args) {
new ReadByPost().start();
}
}

class ReadByPost extends Thread{
@Override
public void run() {
try {

URL url=new URL("http://fanyi.youdao.com/openapi.do");
//打开互联网的连接
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
//为connection设置参数
//设定编码为utf-8
connection.addRequestProperty("encoding","UTF-8");
//设置为true后,当前的connection就可以从网络获取数据
connection.setDoInput(true);
//如果要向服务器传输数据的话,要将服务器setDoOutPut(true)
connection.setDoOutput(true);
//设定当前connection的访问方式设置为post
//注意不能在它有任何连接之后设定为POST
connection.setRequestMethod("POST");

//post需要先向浏览器发送数据
//获取输出流,并进行包装
OutputStream os=connection.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(osw);


//对服务器输出
bw.write("keyfrom=JKXY-test&keyfrom=JKXY-test&key=343166845&type=data&doctype=xml&version=1.1&q=welcome");
//强制输出
bw.flush();

//获取输入流,并进行包装
InputStream is=connection.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);

//读取
String line;
StringBuilder builder=new StringBuilder();
while ((line=br.readLine())!=null) {
builder.append(line);
}//当while结束之后,说明文件读取结束

//关闭流
bw.close();
osw.close();
os.close();
br.close();
isr.close();
is.close();

//输出
System.out.println(builder.toString());

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

3.console输出台截图

 test.xml

<?xml version="1.0" encoding="UTF-8"?>
<youdao-fanyi>
<errorCode>0</errorCode>
<query><![CDATA[welcome]]></query> <!-- 有道翻译 -->
<translation>
<paragraph><![CDATA[欢迎]]></paragraph>
</translation> <!-- 有道词典-基本词典 -->
<basic> <!-- 音标 -->
<phonetic><![CDATA[ˈwelkəm]]></phonetic> <!-- 美式音标 -->
<us-phonetic><![CDATA[ˈwelkəm]]></us-phonetic> <!-- 英式音标 -->
<uk-phonetic><![CDATA[ˈwelkəm]]></uk-phonetic> <!-- 基本释义 -->
<explains>
<ex><![CDATA[adj. 受欢迎的;令人愉快的;可随意的;尽管……好了]]></ex>
<ex><![CDATA[n. 欢迎;迎接;接受]]></ex>
<ex><![CDATA[v. 欢迎,迎接;迎新;乐于接受]]></ex>
<ex><![CDATA[int. 欢迎]]></ex>
<ex><![CDATA[n. (Welcome) (美、印)韦尔科姆(人名)]]></ex>
</explains>
</basic> <!-- 有道词典-网络释义 -->
<web>
<explain>
<key><![CDATA[Welcome]]></key>
<value>
<ex><![CDATA[欢迎]]></ex>
<ex><![CDATA[受欢迎的]]></ex>
<ex><![CDATA[欢迎光临]]></ex>
</value>
</explain>
<explain>
<key><![CDATA[welcome to]]></key>
<value>
<ex><![CDATA[欢迎到来]]></ex>
<ex><![CDATA[欢迎参加]]></ex>
<ex><![CDATA[欢迎到]]></ex>
</value>
</explain>
<explain>
<key><![CDATA[Welcome aboard]]></key>
<value>
<ex><![CDATA[欢迎登机]]></ex>
<ex><![CDATA[欢迎加入]]></ex>
<ex><![CDATA[请上船]]></ex>
</value>
</explain>
</web>
</youdao-fanyi>

原文地址:https://www.cnblogs.com/curedfisher/p/11969222.html