Http进行网络通信
HTTP 进行 网络通信
2023-09-14 08:58:30 时间
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信息在我的邮箱中
相关文章
- postman进行http接口测试
- HTTP Status 415 – Unsupported Media Type「建议收藏」
- Go 爬虫之 HTTP 请求 QuickStart
- Nginx配置Https并进行Http强制跳转Https
- getUserMedia报错:新版本Chrome中getUserMedia接口在http下不再支持
- websocket和http的瓜葛以及websocket协议实现「建议收藏」
- html content属性_HTTP函数
- 如何利用python对HTTP代理进行自动化维护?
- Golang框架 - gin实现Http Server
- 【经验】使用http访问一个链接提示400的错误,但是在浏览器访问没问题(server returned HTTP Response code :400 fro URL:),怎么解决
- 真正“搞”懂HTTP协议11之代理服务
- Zabbix 6.0 LTS 对接 Prometheus blackbox_exporter 监控http证书
- 【Flutter】HTTP 网络操作 ( 引入 http 插件 | 测试网站 | Get 请求 | Post 请求 | 将响应结果转为 Dart 对象 | Future 异步调用 )
- dotnet core 不自动从 https 到 http 的 302 重定向
- 服务器一步步教你搭建Linux HTTP服务器(linux搭建http)
- 请求使用Linux发送HTTP请求的方法(linux发送http)
- Linux极速部署Apache HTTP服务器(linux配置httpd)
- Linux拦截HTTP的安全防护(Linux拦截http)
- MySQLHTTP:构建强大的Web应用(mysql http)
- Linux快速搭建超强HTTP服务器(linux搭建http服务器)
- 熟悉Redis,HTTP抓包,防止网络安全漏洞(redis,http抓包)
- HTTP_HOST和SERVER_NAME的区别详解
- phpauth_http类库进行身份效验
- mysql下mysql-udf-http效率测试小记
- 异步httplistener完全并发处理惩罚http恳求的小例子