import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class HttpInvoker
{
public static final String GET_URL = "http://192.168.101.9/HelloWorld";
public static final String POST_URL = "http://192.168.101.9/HelloWorld";
public static void readContentFromGet() throws IOException
{
// 拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码
String getURL = GET_URL + "?name="
+ URLEncoder.encode("a fat man", "utf-8");
URL getUrl = new URL(getURL);
// 根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
// 返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返
//回的是HttpURLConnection
HttpURLConnection connection = (HttpURLConnection) getUrl
.openConnection();
// 进行连接,但是实际上get request要在下一句的connection.getInputStream()
//函数中才会真正发到服务器
connection.connect();
// 取得输入流,并使用Reader读取
BufferedReader reader = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "utf-8"));
System.out.println("=============================");
System.out.println("Contents of get request");
System.out.println("=============================");
String lines;
while ((lines = reader.readLine()) != null)
{
System.out.println(lines);
}
reader.close();
// 断开连接
connection.disconnect();
System.out.println("=============================");
System.out.println("Contents of get request ends");
System.out.println("=============================");
}
public static void readContentFromPost() throws IOException
{
// Post请求的url,与get不同的是不需要带参数
URL postUrl = new URL(POST_URL);
// 打开连接
HttpURLConnection connection = (HttpURLConnection) postUrl
.openConnection();
// Output to the connection. Default is
// false, set to true because post
// method must write something to the
// connection
// 设置是否向connection输出,因为这个是post请求,参数要放在
// http正文内,因此需要设为true
connection.setDoOutput(true);
// Read from the connection. Default is true.
connection.setDoInput(true);
// Set the post method. Default is GET
connection.setRequestMethod("POST");
// Post cannot use caches
// Post 请求不能使用缓存
connection.setUseCaches(false);
// This method takes effects to
// every instances of this class.
// URLConnection.setFollowRedirects
//是static函数,作用于所有的URLConnection对象。
// connection.setFollowRedirects(true);
// This methods only
// takes effacts to this
// instance.
// URLConnection.setInstanceFollowRedirec
ts是成员函数,仅作用于当前函数
connection.setInstanceFollowRedirects(true);
// Set the content type to urlencoded,
// because we will write
// some URL-encoded content to the
// connection. Settings above must be set before connect!
// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
// 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
// 进行编码
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
// 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
// 要注意的是connection.getOutputStream会隐含的进行connect。
connection.connect();
DataOutputStream out = new DataOutputStream(connection
.getOutputStream());
// The URL-encoded contend
// 正文,正文内容其实跟get的URL中'?'后的参数字符串一致
//String content = "name=" + URLEncoder.encode("中国人", "UTF-8");
String content = "name=" + URLEncoder.encode("#中国人#", "UTF-8");
String district = "&district=" + URLEncoder.encode("区域显示可", "UTF-8");
// DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写道流里面
out.writeBytes(content);
out.writeBytes(district);
out.flush();
out.close(); // flush and close
BufferedReader reader = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "UTF-8"));
String line;
System.out.println("=============================");
System.out.println("Contents of post request");
System.out.println("=============================");
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
System.out.println("=============================");
System.out.println("Contents of post request ends");
System.out.println("=============================");
reader.close();
connection.disconnect();
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
try
{
readContentFromGet();
readContentFromPost();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
-----------------------------------------------------------------------------------------------------------------------
package test;
import java.net.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
//req.setCharacterEncoding("GBK");
//String reqEncoding = req.getCharacterEncoding();
//String name = req.getParameter("name");
//name = new String(name.getBytes("ISO-8859-1"), "GBK");
//String reqURL = req.getRequestURI();
//res.setContentType("text/html");
//res.setCharacterEncoding("UTF-8");
//PrintWriter out = res.getWriter();
//out.println("Hello World");
//String zhStr = "中文中国显示";
//out.println(zhStr);
//out.println(name);
//out.println("reqEncoding = " + reqEncoding );
//out.println("reqURL = " + reqURL );
try
{
String name = req.getParameter("name");
res.setCharacterEncoding("UTF-8");
PrintWriter out = res.getWriter();
//String jsonAd = "{ "idText":"AdMob by ToucheMedia", "idIcon":"http://192.168.101.9/icon/EXP.png", "clickURL":"http://192.168.101.9/addir/tmad.html" }";
String jsonAd = "For jsonAd test";
out.println( jsonAd );
out.println("中文中国");
out.println(name);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
{
try
{
req.setCharacterEncoding("UTF-8");
String name = req.getParameter("name");
String district = req.getParameter("district");
res.setCharacterEncoding("UTF-8");
PrintWriter out = res.getWriter();
out.println("post echo from server");
out.println("中文中国, china");
out.println("name = " + name);
out.println("district = " + district);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = ...
一些工具类代码块的标准代码: 异步的Get请求 异步的Post请求 Get请求,获得返回数据 向指定 URL 发送POST方法的请求 使用finally块来关闭输出流和输入流
使用Java的HttpURLConnection类连接到服务器,并发送GET请求获取要下载的文件的基本信息,包括文件名、文件大小等。 2.2 分块下载 将要下载的文件分成多个块,每个块使用一个线程进行下载。每个线程需要记录已下载...
Java中可以使用HttpURLConnection或者Apache HttpClient等工具类进行文件下载,通过设置请求头和请求参数,发送get或post请求获取文件。 使用Java压缩多个文件为zip包 Java中可以使用ZipOutputStream类将多个文件...
用GET还是POST 提交数据用POST 打开输入和输出流 获取上传信息 字节大小以及长度 设置请求体的类型是文本类型 获得输出流 向服务器输出数据 获得服务器响应的结果和状态码 如果 返回码等于200 得到服务器返回的输入...
用于异步执行 HttpGet、HttpPost、HttpPut、HttpDelete、Multipart-Put、Multipart-Post 和带有回调的 HttpUrlConnection 的库。 简化网络通信所需的代码量。 兼容 Android 2.2 及以上版本。 特征 兼容Android 2.2 ...
Http通信又分为两种方式:get和post,get可以uoqu静态页面,传入参数可以放在url当中,而post方法的传入参数则是放在httprequest(请求)当中。前面提到的HttpUrlConnection接口是java当中的通信接口,而HttpClient...
本库内部基于OkHttp和HttpUrlConnection实现了两套网络请求逻辑,使用者可以根据自己的需要使用其中的某一种类型,或者自己按提供的接口自行实现。使用方法 1,总体配置HttpAgentClient .newBuilder() .setAgent( ...
安卓开发 网络请求实现类,包括HttpClient get/post 请求,和 HttpUrlConnection的操作!
11.3.1 HttpURLConnection的get请求 11.3.2 获取网络上的图片 11.3.3 文件下载 11.3.4 文件上传 11.4 HttpClient 11.4.1 HttpGet请求 11.4.2 HttpPost请求 11.5 本章小结 第12章 数据解析 12.1 XML 12.1.1 DOM ...
11.1.1 将HttpClient用于HTTPGET请求 11.1.2 将HttpClient用于HTTPPOST请求(多部分POST请求示例) 11.1.3 SOAP、JSON和XML分析程序 11.1.4 处理异常 11.1.5 解决多线程问题 11.1.6 有趣的超时 ...
11.1.1 将HttpClient用于HTTPGET请求 11.1.2 将HttpClient用于HTTPPOST请求(多部分POST请求示例) 11.1.3 SOAP、JSON和XML分析程序 11.1.4 处理异常 11.1.5 解决多线程问题 11.1.6 有趣的超时 ...
1.6.1发送get请求获取网页内容 HttpClient client = new HttpClient(); //设置代理服务器地址和端口 //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port); //使用GET方法,如果服务器...
工资单PayBill –用于电费支付的实用程序。 描述:一个安全的应用程序,每月支付MPCZ状态的电费。... 它要求用户提供许多... 技术细节: 为了使应用程序轻量化,我使用了HttpURLConnection来处理GET / POST请求和响应。
import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParserFactory; import okhttp3.Call; import okhttp3.OkHttpClient...
2、支持restful风格api接口请求,支持get、post、put、delete、head、patch、head请求方式; 3、请求数据格式支持Form表单格式、MultiPart多请求体格式、Json请求体格式; 4、支持文件断点下载、下载进度监听、文件...
4.1. ListView 和 Adapter 的关系 ......... 112 4.1.1. 原理分析 .............................. 112 4.1.2. 示例分析: .......................... 115 4.1.3. 运行效果 .............................. 117 4.2...