zoukankan      html  css  js  c++  java
  • webMagic 处理get请求

    例如URL:
    
    http://localhost:8080/javascritp/queryList/?params={"name":"aaa","limit":"45","sl":"show"} 
    
    应该是分成两个url来处理如:
    
    String url1 = "http://localhost:8080/javascritp/queryList/?params=";
    
    String url2 = URLEncoder.encode("{"name":"aaa","limit":"45","sl":"show"}","UTF-8");
    
    //请求URL
    
    
    public static String get(String url, Map<String, String> headers, String charset, Integer connTimeout,
    Integer readTimeout) throws ConnectTimeoutException, SocketTimeoutException, Exception {
    HttpClient client = null;
    HttpGet get = new HttpGet(url);
    String result = "";
    try {
    if (headers != null && !headers.isEmpty()) {
    for (Entry<String, String> entry : headers.entrySet()) {
    get.addHeader(entry.getKey(), entry.getValue());
    }
    }
    // 设置参数
    Builder customReqConf = RequestConfig.custom();
    if (connTimeout != null) {
    customReqConf.setConnectTimeout(connTimeout);
    }
    if (readTimeout != null) {
    customReqConf.setSocketTimeout(readTimeout);
    }
    get.setConfig(customReqConf.build());
    
    HttpResponse res = null;
    
    if (url.startsWith("https")) {
    // 执行 Https 请求.
    client = createSSLInsecureClient();
    res = client.execute(get);
    } else {
    // 执行 Http 请求.
    client = HttpClientUtils.client;
    res = client.execute(get);
    }
    
    result = IOUtils.toString(res.getEntity().getContent(), charset);
    } finally {
    get.releaseConnection();
    if (url.startsWith("https") && client != null && client instanceof CloseableHttpClient) {
    ((CloseableHttpClient) client).close();
    }
    }
    return result;
    }
    
    //WebMagic处理get请求
    
    Request request = new Request();
    request.setMethod(HttpConstant.Method.GET);
    request.setUrl(url1+url2);
    
    //启动爬虫
    Spider.create(new PageProcessor())
    .addPipeline(new Pipline())
    .addRequest(request)
    .run();
    
     
    
  • 相关阅读:
    window下安装nvm、node.js、npm的步骤
    命令行创建Android模拟器
    2016 JavaScript 各种排名
    js开发工作流
    javascript流行工具
    Linux下进程间通信的常用方法
    Linux下回收子进程wait函数和waitpid函数的基本使用
    Linux下exec函数族比如execve等函数的基本使用
    Linux下创建子进程fork函数等的基本使用
    vi操作键盘图
  • 原文地址:https://www.cnblogs.com/joinlemon/p/9541863.html
Copyright © 2011-2022 走看看