http使用get的方式进行网络通信:

package com.testGet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; /**
* 使用Http的Get方式读取网络数据
*/
public class TestGet {
public static void main(String[] args) {
new ReadByGet("welcome").start();
}
}
class ReadByGet extends Thread{
private String str;
public ReadByGet(String str){
this.str=str;
}
@Override
public void run() {
try { URL url=new URL("http://fanyi.youdao.com/openapi.do?keyfrom=guodaxia&key=1142217390&type=data&doctype=xml&version=1.1&q="+str);
URLConnection connection=url.openConnection();//打开链接
InputStream is=connection.getInputStream();//获取输入流
InputStreamReader isr=new InputStreamReader(is,"UTF-8");
BufferedReader br=new BufferedReader(isr); String line;
StringBuilder builder=new StringBuilder();
while((line=br.readLine())!=null){
builder.append(line);
}
br.close();
isr.close();
is.close();
System.out.println(builder); } catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

http使用post的方式进行网络通信:

package com.testPost;

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 Administrator
*
*/
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();//Post使用的是HttpURLConnection
connection.addRequestProperty("encoding", "utf-8");
//打开输入输出通道
connection.setDoInput(true);
connection.setDoOutput(true); OutputStream os=connection.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(osw); bw.write("keyfrom=guodaxia&key=1142217390&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);
}
bw.close();
osw.close();
os.close();
br.close();
isr.close();
is.close(); System.out.println(builder); } catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

httpClient使用get方式进行网络通信:

package com.testClientGet;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; /**
* 使用HttpClient进行Get方式通信
* @author Administrator
*
*/
public class ClientGet {
public static void main(String[] args) {
new Get().start();
}
}
class Get extends Thread{
HttpClient client=HttpClients.createDefault(); @Override
public void run() {
HttpGet get=new HttpGet("http://www.baidu.com");
try { HttpResponse response=client.execute(get);
HttpEntity entity=response.getEntity();
String result=EntityUtils.toString(entity,"utf-8"); System.out.println(result); } catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} }

httpClient使用post方式进行网络通信:

package com.testClientPost;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; /**
* 使用HttpClient进行Post方式通信
* @author Administrator
*
*/
public class TestPost {
public static void main(String[] args) {
//http://fanyi.youdao.com/openapi.do
//keyfrom=guodaxia&key=1142217390&type=data&doctype=xml&version=1.1&q=welcome
new Post().start();
}
}
class Post extends Thread{
HttpClient client=HttpClients.createDefault(); @Override
public void run() {
HttpPost post=new HttpPost("http://fanyi.youdao.com/openapi.do");
try {
//Post需要请求参数
//keyfrom=guodaxia&key=1142217390&type=data&doctype=xml&version=1.1&q=welcome
List<BasicNameValuePair> parameters=new ArrayList<BasicNameValuePair>();
parameters.add(new BasicNameValuePair("keyfrom", "guodaxia"));
parameters.add(new BasicNameValuePair("key", "1142217390"));
parameters.add(new BasicNameValuePair("type", "data"));
parameters.add(new BasicNameValuePair("doctype", "xml"));
parameters.add(new BasicNameValuePair("version", "1.1"));
parameters.add(new BasicNameValuePair("q", "welcome"));
post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));
HttpResponse response=client.execute(post);
HttpEntity entity=response.getEntity();
String result=EntityUtils.toString(entity,"utf-8"); System.out.println(result); } catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

注意:

我这里使用的httpClient是4.3.5版本的

有道翻译api信息在我的邮箱中

Http进行网络通信的更多相关文章

  1. ZeroMQ实例-使用ZMQ(ZeroMQ)进行局域网内网络通信

    本文内容摘要:1)安装zeromq.2)实例说明使用zmq进行网络间的消息发送和接收 首先在机器中安装zmq库 步骤如下: 1)下载zeromq的源代码,ZeroMQ的官方网址:http://zero ...

  2. 基础笔记12(socket,url网络通信)

    进一步深入socket 1.网络通信条件: .IP地址,可用主机名. .传输数据时将不用的应用程序通过数字标识区分开来,这种标识称为逻辑端口,也称端口.(0-65535端口,一般系统预留0-1024) ...

  3. Windows Store App 网络通信 HttpWebRequest

    如果希望更好地控制HTTP请求,可以使用System.Net类库中的HttpWebRequest类,该类对HTTP协议进行了完整的封装,并且提供了很多对HTTP协议中的 Header.Content和 ...

  4. socket网络通信

    1.socket通常也称作"套接字",用于描述IP地址和端口.在internet上的主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个socket,并绑定到一个端口上 ...

  5. 20145316&20145229实验五:网络通信

    20145316&20145229实验五:网络通信 结对伙伴:20145316 博客链接:http://www.cnblogs.com/xxy745214935/p/6130897.html

  6. 网络通信之Socket与LocalSocket的比较

    Socket与LocalSocket都可以实现网络通信,两个有什么区别呢? LocalSocket其通信方式与Socket差不多,只是LocalSocket没有跨越网络边界. 于是,思考到一个问题:a ...

  7. Android 网络通信API的选择和实现实例

    Android开发网络通信一开始的时候使用的是AsyncTask封装HttpClient,没有使用原生的HttpURLConnection就跳到了Volley,随着OkHttp的流行又开始迁移到OkH ...

  8. java 25 - 2 网络编程之 网络通信三要素

    网络通信三要素 IP地址: InetAddress 网络中设备的标识,不易记忆,可用主机名(计算机的标识号) 端口号: 用于标识进程的逻辑地址,不同进程的标识(正在运行的软件的标识号) 传输协议: 通 ...

  9. TCP/UDP,SOCKET网络通信,C++/Java实现

    趁这两天没事干,就把网络通信这一块搞一搞,C/S方面的了解一下,很重要! TCP Server/Client

  10. Java网络通信初步认知

    本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...

随机推荐

  1. 移动平台WEB前端开发技巧汇总

    原文 :http://uecss.com/mobile-platform-web-front-end-development-skills-summary.html 开发者们都知道在高端智能手机系统中 ...

  2. ZOJ3554 A Miser Boss(dp)

    给你n个工件,然后有A,B,C三个工厂,然后它们加工第i个工件所需要的时间分别为a[i],b[i],c[i],然后现在要你利用三间工厂加工所有的零件,要求是任何时间工厂都不能停工,而且一定要三间同时做 ...

  3. iOS工程预编译文件的创建

    在搜索 添加工程名/自己的pch文件名记住加后缀  

  4. java基础知识回顾之抽象类和接口的区别

    /* 抽象类和接口的异同点: 相同点: 都是不断向上抽取而来的. 不同点: 1,抽象类需要被继承,而且只能单继承. 接口需要被实现,而且可以多实现. 2,抽象类中可以定义抽象方法和非抽象方法,子类继承 ...

  5. java基础知识回顾之javaIO类---BufferedReader和BufferedWriter

    使用了装饰设计模式:此类的设计是为了提高流操作数据的效率.思想就是定义容器将数据进行临时存储,对于缓冲区对象,其实就是将这个容器进行了分装,并提供了更高效的操作方法. BufferReader: pa ...

  6. VS2003 下GridControl的列显示成图片+文字的形式实现

    public RC_CustomerSolicitListUC() { // 该调用是 Windows.Forms 窗体设计器所必需的. InitializeComponent(); // TODO: ...

  7. 初始BOM

    1.BOM(Browser Object Model),定义了操作浏览器的借口 2.常用的BOM对象:Window, History,Navigator,Screen, Location等 3.由于浏 ...

  8. jackson set properties to default value (取消让jackson 赋予默认值)

    you can define it with Integer rather than int or long. define it with a package type. jackson wont' ...

  9. java实现音频转换

    这里需要用到第三方 ffmpeg.exe package com.convertaudio; import java.io.File;import java.util.ArrayList;import ...

  10. xml bug之cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration...

    1.今天重装了一下MyEclipse7.5,打开原来的Flex项目,又报了以下两个错误,之前解决过,但不想又出现,于是把它的解决方法贴出来,做个备忘! 错误信息为 错误信息 写道 cvc-comple ...