Http API笔记
目前接触到的网络连接API有:
一、HttpURLConnection
四要素:1、URL 2、HttpURLConnection 3、outputStream 4、inputStream
uri.openConnection(); //获得HttpURLConnection.
hc.setDoInput(true); //允许输入
hc.setDoOutput(true); //允许输出
hc.setRequestMethod("POST");//设置为post
hc.setUseCaches(false); // post不使用缓存
hc.setConnectTimeout(3000); //设置连接超时
hc.setReadTimeout(3000); //设置读取超时
hc.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
hc.setRequestProperty("Charset","UTF-8");
os = hc.getOutputStream(); //获得输出流
os.write(vals);
os.flush();
if (hc.getResponseCode() == HttpURLConnection.HTTP_OK)
is = hc.getInputStream(); //获得输入流
通过URL得到HttpURLConnection。
通过HttpURLConnection得到outputStream和inputStream。
二、HttpClient
四要素:1 、HttpParams 2、HttpClient 3、HttpPost/HttpGet 4、HttpEntity 5、HttpResponse
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
3000);
HttpConnectionParams.setSoTimeout(httpParams,3000);
HttpClient client = new DefaultHttpClient(httpParams);
HttpPost post = new HttpPost("http://");
post.setHeader();
post.setEntity();
HttpResponse response = client.execute(post);
if (httpResponse.getStatusLine().getStatusCode() == 200)
response.getEntity();
注意: HttpEntity 要使用恰当的类
常用 new ByteArrayEntity(content.getBytes("UTF-8"))
UrlEncodedFormEntity //键值对列表
注意:Content-Type
Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
Application:用于传输应用程序数据或者二进制数据;
Message:用于包装一个E-mail消息;
Image:用于传输静态图片数据;
Audio:用于传输音频或者音声数据;
Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
HTML 5
enctype 属性规定在将表单数据发送到服务器之前如何对其进行编码。
application/x-www-form-urlencoded 在发送前对所有字符进行编码(默认)。
multipart/form-data 不对字符编码。当使用有文件上传控件的表单时,该值是必需的。
text/plain 将空格转换为 "+" 符号,但不编码特殊字符。