使用HttpURLConnection调用接口

文章描述:-2022年3月29日发(作者:姜习)使⽤HttpURLConnection调⽤接⼝LConnection 任何⽹络连接都需要经过socket才能连接,HttpURLConnection不需要设置socket,所以,HttpURLConnection并不是底层的连接,⽽是在底层连接上的⼀个请求。这就是为什么HttpURLConneciton只是⼀个抽象类,⾃⾝不能被实例化的原因。H

-

使用HttpURLConnection调用接口2022年3月29日发(作者:姜习)


使⽤HttpURLConnection调⽤接⼝
LConnection
任何⽹络连接都需要经过socket才能连接,HttpURLConnection不需要设置socket,所以,HttpURLConnection并不是底层的连接,⽽
是在底层连接上的⼀个请求。这就是为什么HttpURLConneciton只是⼀个抽象类,⾃⾝不能被实例化的原因。HttpURLConnection只能通过
nnection()⽅法创建具体的实例。
虽然底层的⽹络连接可以被多个HttpURLConnection实例共享,但每⼀个HttpURLConnection实例只能发送⼀个请求。请求结束之后,应该
调⽤HttpURLConnection实例的InputStream或OutputStream的close()⽅法以释放请求的⽹络资源,不过这种⽅式对于持久化连接没⽤。对
于持久化连接,得⽤disconnect()⽅法关闭底层连接的socket。
2.代码⽰例
import LConnection;
import ;
import t;
import ;
import ;
import ;
import e;
import Utils;
**
* @author 作 者:⼩杜
* @version 创建时间:2017-2-8 下午6:48:40
* @Description 描述:发送⼿机
*
@Service
public class SendVerlifyCodeImpl implements ISendVerlifyCode {
平台的⽹址地址
@Value(
private String host;
注册平台的⽤户名
@Value(
private String username;
注册平台的⽹址密码
@Value(
private String password;
注册平台的⽹址的密钥
@Value(
private String apikey;
**
* 验证码的⽣成和发送到⼿机
*
@SuppressWarnings(
@Override
public void SendVerlifyCode(String phoneumber) {
VerlifyCode vc = lifyCode();
1判断是否能再次,即当前session中没有,或者时间间隔可以响应
if (vc == null
|| (vc != null && ondBetween(new Date(), dDate()) >= _VERLIFY_CODE)) {
2如果能够发送
2.1⽣成⼀个验证码
vc = new VerlifyCode();
String code = UUID().toString().substring(0, 4);
neumber(phoneumber);
dDate(new Date());
lifyCode(code);
2.2
String content = ,你的验证码为有效期为分钟,请在在有效期内使⽤!
创建⼀个URL请求对象
try {


try {
使⽤HttpURLConnection来
URL url = new URL(host);
HttpURLConnection openConnection = (HttpURLConnection) nnection();
设置请求⽅法为post,必须为⼤写
uestMethod(
设置为带内容输出
utput(true);
参数的拼接
StringBuilder params = new StringBuilder().append(
.append(
.append(
输出参数
putStream().write(ng().getBytes(
连接
t();
得到响应的内容
String responeText = StreamUtils
.copyToString(utStream(), e(
if (With(
2.3保存相关信息(发送时间、电话号码,验证码)可以放到session中去,成功再保存,否则 可以没有发送成功
lifyCode(vc);
} else {
throw new RuntimeException(发送失败!
}
} catch (Exception e) {
throw new RuntimeException(发送失败!
}
} else {
throw new RuntimeException(你的验证码发送过于频繁!
}
}
}
3.注意事项
超时设置,防⽌ ⽹络异常的情况下,可能会导致程序僵死⽽不继续往下执⾏。
perty(
perty(

其中:
tConnectTimeout:连接主机的超时时间(单位:毫秒)
tReadTimeout:从主机读取数据的超时时间(单位:毫秒)

JDK 1.5以前的版本,只能通过设置这两个系统属性来控制⽹络超时。在1.5中,还可以使⽤HttpURLConnection的⽗类
URLConnection的以下两个⽅法:
setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:设置从主机读取数据超时(单位:毫秒)
例如:
HttpURLConnection httpURLConnection = (HttpURLConnection)nnection();
httpURLConnection .setConnectTimeout(30000);
httpURLConnection .setReadTimeout(30000);


使⽤HttpURLConnection调⽤接⼝
LConnection
任何⽹络连接都需要经过socket才能连接,HttpURLConnection不需要设置socket,所以,HttpURLConnection并不是底层的连接,⽽
是在底层连接上的⼀个请求。这就是为什么HttpURLConneciton只是⼀个抽象类,⾃⾝不能被实例化的原因。HttpURLConnection只能通过
nnection()⽅法创建具体的实例。
虽然底层的⽹络连接可以被多个HttpURLConnection实例共享,但每⼀个HttpURLConnection实例只能发送⼀个请求。请求结束之后,应该
调⽤HttpURLConnection实例的InputStream或OutputStream的close()⽅法以释放请求的⽹络资源,不过这种⽅式对于持久化连接没⽤。对
于持久化连接,得⽤disconnect()⽅法关闭底层连接的socket。
2.代码⽰例
import LConnection;
import ;
import t;
import ;
import ;
import ;
import e;
import Utils;
**
* @author 作 者:⼩杜
* @version 创建时间:2017-2-8 下午6:48:40
* @Description 描述:发送⼿机
*
@Service
public class SendVerlifyCodeImpl implements ISendVerlifyCode {
平台的⽹址地址
@Value(
private String host;
注册平台的⽤户名
@Value(
private String username;
注册平台的⽹址密码
@Value(
private String password;
注册平台的⽹址的密钥
@Value(
private String apikey;
**
* 验证码的⽣成和发送到⼿机
*
@SuppressWarnings(
@Override
public void SendVerlifyCode(String phoneumber) {
VerlifyCode vc = lifyCode();
1判断是否能再次,即当前session中没有,或者时间间隔可以响应
if (vc == null
|| (vc != null && ondBetween(new Date(), dDate()) >= _VERLIFY_CODE)) {
2如果能够发送
2.1⽣成⼀个验证码
vc = new VerlifyCode();
String code = UUID().toString().substring(0, 4);
neumber(phoneumber);
dDate(new Date());
lifyCode(code);
2.2
String content = ,你的验证码为有效期为分钟,请在在有效期内使⽤!
创建⼀个URL请求对象
try {


try {
使⽤HttpURLConnection来
URL url = new URL(host);
HttpURLConnection openConnection = (HttpURLConnection) nnection();
设置请求⽅法为post,必须为⼤写
uestMethod(
设置为带内容输出
utput(true);
参数的拼接
StringBuilder params = new StringBuilder().append(
.append(
.append(
输出参数
putStream().write(ng().getBytes(
连接
t();
得到响应的内容
String responeText = StreamUtils
.copyToString(utStream(), e(
if (With(
2.3保存相关信息(发送时间、电话号码,验证码)可以放到session中去,成功再保存,否则 可以没有发送成功
lifyCode(vc);
} else {
throw new RuntimeException(发送失败!
}
} catch (Exception e) {
throw new RuntimeException(发送失败!
}
} else {
throw new RuntimeException(你的验证码发送过于频繁!
}
}
}
3.注意事项
超时设置,防⽌ ⽹络异常的情况下,可能会导致程序僵死⽽不继续往下执⾏。
perty(
perty(

其中:
tConnectTimeout:连接主机的超时时间(单位:毫秒)
tReadTimeout:从主机读取数据的超时时间(单位:毫秒)

JDK 1.5以前的版本,只能通过设置这两个系统属性来控制⽹络超时。在1.5中,还可以使⽤HttpURLConnection的⽗类
URLConnection的以下两个⽅法:
setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:设置从主机读取数据超时(单位:毫秒)
例如:
HttpURLConnection httpURLConnection = (HttpURLConnection)nnection();
httpURLConnection .setConnectTimeout(30000);
httpURLConnection .setReadTimeout(30000);

-

使用HttpURLConnection调用接口

发布时间:2022-03-29 19:59:46
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 19 条评论,645人围观)
东方风行集团V铁粉19 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
验证码)可以放到session中去
专业论坛V铁粉17 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
成功再保存
如何治疗精神分裂V铁粉3 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
40 * @Description 描述
个人所得税专项扣除V铁粉29 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
4); neumber(phoneumber); dDate(new Date()); lifyCode(code); 2.2 String content =
什么是量比V铁粉30 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
防⽌ ⽹络异常的情况下
新疆建设兵团网V铁粉24 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
应该调⽤HttpURLConnection实例的InputStream或OutputStream的close()⽅法以释放请求的⽹络资源
多达兽V铁粉1 minute ago Google Chrome 93.0.4577.82 Windows 10 x64
还可以使⽤HttpURLConnection的⽗类URLConnection的以下两个⽅法: setConnectTimeout:设置连接主机超时(单位:毫秒) setReadTimeout:设置从主机读取数据超时(单位:毫秒) 例如:HttpURLConnection httpURLConnection = (HttpURLConnection)nnection(); httpURLConnection .setConnectTimeout(30000); httpURLConnection .setReadTimeout(30000); -
航头二手房出售V铁粉18 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
成功再保存
毛周角质化V铁粉23 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
验证码)可以放到session中去
金盛福V铁粉7 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
所以
和玺V铁粉6 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
电话号码
国际化V铁粉27 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
但每⼀个HttpURLConnection实例只能发送⼀个请求
和成世纪V铁粉23 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
2.代码⽰例import LConnection;import ;import t;import ;import ;import ;import e;import Utils;*** @author 作 者
黑山公园V铁粉0 second ago Google Chrome 93.0.4577.82 Windows 10 x64
perty(perty( 其中:tConnectTimeout:连接主机的超时时间(单位:毫秒) tReadTimeout:从主机读取数据的超时时间(单位:毫秒) JDK 1.5以前的版本
阳光广场二手房V铁粉24 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
在1.5中
嘉定新城V铁粉10 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
否则 可以没有发送成功 lifyCode(vc); } else { throw new RuntimeException(发送失败! } } catch (Exception e) { throw new RuntimeException(发送失败! } } else { throw new RuntimeException(你的验证码发送过于频繁! } }}3.注意事项 超时设置
option82V铁粉17 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
必须为⼤写 uestMethod( 设置为带内容输出 utput(true); 参数的拼接 StringBuilder params = new StringBuilder().append( .append( .append( 输出参数 putStream().write(ng().getBytes( 连接 t(); 得到响应的内容 String responeText = StreamUtils .copyToString(utStream()
山西太原儿童医院V铁粉16 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
所以

最近发表

随便看看

热门文章

标签列表