夜光 带你走进 Java基础编程实战(三十七 tcp/udp)
夜光序言:
人生的道路上总是充满意想不到的惊喜和阻碍,你可以丢弃很多累赘、流言、虚荣、那些不爱你的以及你不爱的人与回忆,但是无论何时,你不可以丢掉你的勇气~~
正文:通讯这一块很有趣~~我做AGV的时候,很多时候要设计通讯~~
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.ResponseHandler;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
// 夜光:嘿哈~~第一个案例
public class HttpComponentsGetTest {
public final static void main(String[] args) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) //夜光 设置连接超时时间
.setConnectionRequestTimeout(5000) // 夜光 设置请求超时时间
.setSocketTimeout(5000)
.setRedirectsEnabled(true)//夜光 默认允许自动重定向
.build();
HttpGet httpGet = new HttpGet("http://www.baidu.com");
httpGet.setConfig(requestConfig);
String srtResult = "";
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode() == 200){
srtResult = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");//获得返回的结果
System.out.println(srtResult);
}else
{
//夜光 异常处理
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.LaxRedirectStrategy;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
//夜光:嘿哈~~第二个案例
public class HttpComponentsPostTest {
public final static void main(String[] args) throws Exception {
//夜光 获取可关闭的 httpCilent
//CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpClient httpClient = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy()).build();
//夜光 配置超时时间
RequestConfig requestConfig = RequestConfig.custom().
setConnectTimeout(10000).setConnectionRequestTimeout(10000)
.setSocketTimeout(10000).setRedirectsEnabled(false).build();
HttpPost httpPost = new HttpPost("https://tools.usps.com/go/ZipLookupAction.action");
//夜光 设置超时时间
httpPost.setConfig(requestConfig);
//夜光 装配post请求参数
List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();
list.add(new BasicNameValuePair("tAddress", URLEncoder.encode("1 Market Street", "UTF-8"))); //请求参数
list.add(new BasicNameValuePair("tCity", URLEncoder.encode("San Francisco", "UTF-8"))); //请求参数
list.add(new BasicNameValuePair("sState", "CA")); //请求参数
try {
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,"UTF-8");
//夜光 设置post求情参数
httpPost.setEntity(entity);
httpPost.setHeader("User-Agent", "HTTPie/0.9.2");
//夜光 httpPost.setHeader("Content-Type","application/form-data");
HttpResponse httpResponse = httpClient.execute(httpPost);
String strResult = "";
if(httpResponse != null){
System.out.println(httpResponse.getStatusLine().getStatusCode());
if (httpResponse.getStatusLine().getStatusCode() == 200) {
strResult = EntityUtils.toString(httpResponse.getEntity());
}
else {
strResult = "Error Response: " + httpResponse.getStatusLine().toString();
}
}else{
}
System.out.println(strResult);
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(httpClient != null){
httpClient.close(); //夜光 释放资源
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}