`

httpclient获取百度真实url(java)

    博客分类:
  • java
阅读更多
百度搜索后显示的结果中url是临时的,我们想要的是点进去的浏览器地址栏的那个网址
如:
https://www.baidu.com/link?url=a2VZ4Xp9ukhitVl8mvA9gjMEQXz02cI51SVwYmtbFaLv61OTHeSzmrk0CkX-UN6tqAvrvpGTppbygbyuRyXf0Y__Jy404M0S4-aJ1b_DSDS&wd=&eqid=8761145d00014ab10000000359549e56
转换为
http://muzhi.baidu.com/question/1366450327137412899.html


需要的jar包:
commons-codec-1.6.jar
commons-httpclient-3.1.jar
commons-logging.jar

--------------------------------------代码
package httpclient;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;

public class HttpClient_Get_Url {
/**
* 根据百度url,获取原本url
* @throws IOException
* @throws HttpException
* */
public static String GetTrueUrlByBaiduUrl(String baidu_url) throws HttpException, IOException{
//---------------------------1
HttpClient client = new HttpClient();
//设置代理IP
//client.getHostConfiguration().setProxy("172.22.40.20", 8080);
GetMethod getMethod = new GetMethod(baidu_url);
//获取状态码
int stateCode =client.executeMethod(getMethod);
String text=getMethod.getResponseBodyAsString();
//释放
getMethod.releaseConnection();
if (stateCode == HttpStatus.SC_OK) {
text=text.split("URL='")[1].split("'")[0];
//System.out.println("访问成功,网址:"+text);
return text;
}
return null;
}

public static void main(String[] args) throws HttpException, IOException {
String url="https://www.baidu.com/link?url=a2VZ4Xp9ukhitVl8mvA9gjMEQXz02cI51SVwYmtbFaLv61OTHeSzmrk0CkX-UN6tqAvrvpGTppbygbyuRyXf0Y__Jy404M0S4-aJ1b_DSDS&wd=&eqid=8761145d00014ab10000000359549e56";
System.out.println(GetTrueUrlByBaiduUrl(url));;
}
}
分享到:
评论

相关推荐

    java使用HttpClient通过url下载文件到本地

    综上所述,通过Java的HttpClient库,可以在Eclipse环境中编写程序,实现从指定URL下载文件到本地的功能。通过理解HttpClient的工作原理和提供的API,开发者可以构建出稳定、高效的文件下载解决方案。

    Java爬虫Jsoup+httpclient获取动态生成的数据

    本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...

    JAVA httpclient jar下载

    httpclient常用封装工具 doGet(String url, Map, String> param) doPost(String url, Map, String> param) doPostJson(String url, String json)

    httpclient 获取技术博客列表

    标题中的“httpclient 获取技术博客列表”指的是使用Apache HttpClient库来获取网络上的技术博客列表。HttpClient是一个Java库,它提供了一种丰富的API来执行HTTP请求,包括GET、POST等方法,用于从网页抓取数据。在...

    通过HTTPClient获取网络资源

    在Java中,创建一个`HttpClient`实例是获取网络资源的第一步。`HttpClient`提供了多种方法来创建请求,如`HttpGet`、`HttpPost`等,分别对应HTTP的GET和POST请求。以下是一个简单的`HttpGet`请求示例: ```java ...

    android HttpClient 获取网络图片

    android HttpClient 获取网络图片 实例

    HttpClient获取OAuth2.0中的code

    通过httpclient post去获取,response返回码是302,返回的code放在header的Location中。 请求的时候client_id,response_type,redirect_uri,state拼接在url后面,account和password放在body表单(x-...

    httpClient 调用远程接口 获取数据到本地文件夹

    HttpClient是Apache HTTP Components项目的一部分,它是一个强大的Java库,用于执行HTTP请求。在这个场景中,我们使用HttpClient来调用远程接口,从电信公司的网站获取可用的新手机号码信息,并将这些数据存储到本地...

    java获取百度网盘分享的真实地址并下载

    在Java编程环境中,实现从百度网盘获取共享文件的真实下载地址并进行下载涉及多个关键知识点。首先,我们需要了解百度网盘的API接口以及如何通过网络请求来模拟用户行为。以下是一份详细的步骤和相关技术介绍: 1. ...

    java httpclient 模拟登录

    在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...

    Java通过HttpClient调用百度地图Demo

    这就是使用Java HttpClient调用百度地图API的基本步骤。在实际开发中,你可能还需要处理错误、重试机制、日志记录等。注意,为了保证服务的稳定性和安全性,务必遵守百度地图API的使用政策,合理控制请求频率,并对...

    Java HttpClient 全部的jar包

    在Java项目中,使用HttpClient可以实现与Web服务器的高效通信。下面将详细介绍这12个jar包的作用及其在HttpClient中的功能: 1. `commons-beanutils-1.8.0.jar`: Apache Commons BeanUtils库提供了对Java Beans属性...

    Java 使用HttpClient保持SESSION状态

    下面我们将详细探讨如何在Java中使用HttpClient来实现这一目标。 首先,我们需要导入必要的Apache HttpClient库,通常包含以下依赖: ```xml <groupId>org.apache.httpcomponents <artifactId>httpclient ...

    httpclient方式调用url

    4. **执行请求**:使用HttpClient实例执行请求,并获取HttpResponse对象: ```java HttpResponse response = httpClient.execute(httpGet); ``` 5. **处理响应**:从HttpResponse对象中读取响应状态码和数据。...

    java 中HttpClient传输xml字符串实例详解

    至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...

    百度搜索接口java后台

    对于对接百度搜索接口,我们可以使用Java的HttpURLConnection类或者Apache HttpClient库来发送HTTP请求,获取并解析返回的JSON数据。 以下是一个简单的Java代码示例,演示如何使用HttpURLConnection对接百度搜索...

    Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)

    接着,我们通过HttpClient的execute方法发送请求并获取响应。这个例子展示了HttpClient库的基本用法,实际应用中可能需要处理更复杂的场景,如设置请求头、处理响应内容、处理异常等。 总的来说,Apache HttpClient...

    JAVA调用HTTP及httpclient的详细说明

    ### JAVA调用HTTP及httpclient的详细说明 #### 一、引言 在现代软件开发中,客户端和服务端之间的通信通常通过HTTP协议实现。而在Java编程语言中,开发者可以选择多种方式来实现HTTP请求的发送与接收,其中`...

    java-HttpClient学习,和解析html.zip

    java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_...

Global site tag (gtag.js) - Google Analytics