/**
* 仅仅在发送url的时候调用
* @param url
* @return
*/
public String sendHttpURLConnection(String url){
//logger.info("向微信发起请求,发送的url为:"+url);
String str = "";
try {
URL getUrl = new URL(url);
// 根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
HttpURLConnection connection;
//代理判断,0-不使用代理;1-使用代理
if("0".equals(ServicePort_shezhi)){
connection = (HttpURLConnection) getUrl.openConnection();
}else{
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress(proxyHost, Integer.valueOf(proxyPort)));
connection =(HttpURLConnection)getUrl.openConnection(proxy);
}
// 进行连接,但是实际上get request要在下一句的connection.getInputStream()函数中才会真正发到
connection.setConnectTimeout(25000);
connection.setReadTimeout(25000);
connection.connect();
// 取得输入流,并使用Reader读取
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
String lines;
//获取返回的字符流转化为字符串
while ((lines = reader.readLine()) != null) {
str = str + lines;
}
reader.close();
// 断开连接
connection.disconnect();
//logger.info("向微信发起请求,微信返回的字符串为:"+str);
return str;
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("向微信发起请求出现异常,微信返回的字符串为:"+str+" e.getMessage()="+e.getMessage());
//logger.info("向微信发起请求出现异常,微信返回的字符串为:"+str,e.getMessage());
}
//运行到此说明发生错误
str="errcode";
return str;
}
本文目录第一步:添加网络访问权限第二步:使用
HttpURLConnection
访问网络代码示例
Android原生目前支持两种方式访问http
协议
的网络,第一种是
HttpURLConnection
,另外一种是oKHttp,下面来介绍一下用
HttpURLConnection
来访问访问http
协议
的方法
第一步:添加网络访问权限
在AndroidManifest.xml文件中添加如下权限
http请求需要在 AndroidManifest.xml文件的application节点添加如下属性
android:usesCleartextTraffic=true
第二步:使用HttpURLC
Android
-
HttpURLConnection
lib
-
http 后续不再单独在此维护,统一合并到AndroidAppFactory 中继续维护,对应Git地址为:
AndroidAppFactory:
对应组件库为:LibHttpCommon & LibHttpAdvanced
调用事例参考:
一款封装
HttpURLConnection
实现的简单的网络请求的事例,提供了对应的apk和源码以及调用事例。
在根目录添加发布插件的相关依赖
buildscript {
repositories {
jcenter()
allprojects {
repositories {
jcenter()
import
dependencies {
HttpURLConnection
请求方式get,post分析
1.post请求方式
如果现在有个需求,是需要把图片上传到自己的服务器。如果是在普通的客户端实现,就form表单post请求提交图片多媒体信息。现在使用
HttpURLConnection
服务器端提交post请求实现,所以我们先要分析客户端post请求示例,如下图所示:
搜狗浏览器F12开发者模式,查看请求,如下图:
HttpUrlConnection
是java内置的api,在java.net包下,那么,它请求网络同样也有get请求和post请求两种方式。最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
在Java中可以使用Http
今日学习了HTTP报文的相关基础知识,做出以下简单的记录:1.1.报文流:
报文在客户端、服务器和
代理
之间流动,术语“流入”“流出”用来描述事务处理的方向,报文流入源端服务器,工作完成后流回Agent
代理
中。此外,报文永远都是向下游流动的。1.2 报文的组成部分
对报文进行描述的起始行
包含
属性的首部
可选的,
包含
数据的主体
1.2.1 报文的语法:所有的HTTP报文都可以分为两类:请求报文(
public class VideoListAction extends Action
private VideoService service = new VideoServiceBean();
public ActionForward execute(ActionMapping mapping, ActionForm form,
URL url = new URL(filePath);
// 创建
代理
服务器
InetSocketAddress addr = new InetSocketAddress("10.255.254.225", 3128);
// http
代理
Prox...
测试应用有两个按钮,分别用
HttpURLConnection
和 Okhttp3 请求 https://www.baidu.com/。注意:两个请求都加入了 Proxy.NO_PROXY。
//
HttpURLConnection
请求https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13812371237
public void getHtmlByUrlconnection(String path) throws Exception
private void requestNetData () {
try {
URL url = new URL("http://www.toutiao.com/stream/widget/local_weather/data/?city=%E5%8C%97%E4%BA%AC");
HttpURLConnection
urlConnection = (HttpURLConnecti...
1. URL存在性
实际开发中常常遇到访问给定URL之前检查其是否存在的场景,或可能需要检查URL资源是否健康。
通过访问URL的响应码
判断
其是否存在,一般查看是否为200,即为“OK”(请求成功)。
2. 使用GET请求
首先我使用GET请求,通过创建 java.net.URL实例并传入URL作为构...
2. 创建
HttpURLConnection
连接对象,并设置请求方法为POST。
HttpURLConnection
conn = (
HttpURLConnection
) url.openConnection();
conn.setRequestMethod("POST");
3. 设置请求头,指定Content
-
Type为multipart/form
-
data。
conn.setRequestProperty("Content
-
Type", "multipart/form
-
data; boundary=
-
-
-
-
WebKitFormBoundaryxxxxxx");
4. 设置请求体,将要上传的文件数据写入请求体中。
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes("
-
-
-
-
-
-
WebKitFormBoundaryxxxxxx\r\n");
out.writeBytes("Content
-
Disposition: form
-
data; name=\"file\"; filename=\"" + file.getName() + "\"\r\n");
out.writeBytes("Content
-
Type: application/octet
-
stream\r\n\r\n");
out.write(fileBytes);
out.writeBytes("\r\n
-
-
-
-
-
-
WebKitFormBoundaryxxxxxx
-
-
\r\n");
out.flush();
out.close();
其中,file是要上传的文件对象,fileBytes是文件的二进制数据。
5. 发送请求并获取响应。
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
in.close();
以上就是使用
HttpURLConnection
进行form
-
data上传文件的步骤,希望能对你有所帮助。