Skip to content

ysdxz207/hupubao-common-http

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简单封装http请求工具

<dependency>
    <groupId>com.hupubao</groupId>
    <artifactId>hupubao-common-http</artifactId>
    <version>${hupubao-common-http.version}</version>
</dependency>

版本自行查看:https://mvnrepository.com/artifact/com.hupubao/hupubao-common-http

Http工具

  • 起因:爬小说数据时发现有些页面jsoup不能爬到小说内容, 而HttpClient可以,又不想用太大的爬虫框架, 于是自己动手把HttpClient封装了一下

  • 使用方法

import com.alibaba.fastjson.JSONObject;
import org.jsoup.Connection;
import win.hupubao.common.http.Page;

public class TestPage {
    public static void main(String[] args) {
        JSONObject paramsJson = new JSONObject();//json参数,当然也可以用Map
        paramsJson.put("q", "太阳");

        String paramsXml = "<xml><id>123456</id><name>大帅比</name></xml>";//raw参数,post方式
        Page.Response responseGet = Page.create()
                .connectionTimeout(3000)
                .retryTimes(3)
                .request("https://www.google.com/search",
                        paramsJson,
                        Connection.Method.GET);

        System.out.println(responseGet);

        Page.Response responsePost = Page.create()
                .connectionTimeout(3000)
                .retryTimes(3)
                .request("https://www.google.com/search",
                        paramsXml,
                        Connection.Method.POST);

        System.out.println(responsePost.toJson(false));
    }
}
  • 重要

本工具因为使用了Jsoup解析xml,可以防止xxe攻击问题。 原xml:

<?xml version="1.0" encoding="utf-8"?>
        <!DOCTYPE xdsec [
                <!ELEMENT methodname ANY >
                <!ENTITY xxe SYSTEM "file:///C:/Users/Administrator/Desktop/aa.txt" >]>
<test>
    <content>&xxe;</content>
</test>

Jsoup会把xml解析成如下:

<!--?xml version="1.0" encoding="utf-8"?--><!doctype xdsec>
<!--ENTITY xxe SYSTEM "file:///C:/Users/Administrator/Desktop/aa.txt" -->
<html>
 <head></head>
 <body>
  ]&gt; 
  <test> 
   <content>
    &amp;xxe;
   </content> 
  </test>
 </body>
</html>

About

简单封装http请求工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages