httpclient 动态网页获取

public static String getHtmlByUrl(String url){

String html = null;

HttpClient httpClient = new DefaultHttpClient();//创建httpClient对象

HttpGet httpget = new HttpGet(url);//以get方式请求该URL

try {

HttpResponse responce = httpClient.execute(httpget);//得到responce对象

int resStatu = responce.getStatusLine().getStatusCode();//返回码

if (resStatu==HttpStatus.SC_OK) {//200正常 其他就不对

//获得相应实体

HttpEntity entity = responce.getEntity();

System.out.println(Integer.toString(resStatu));
if (entity!=null) {

html = EntityUtils.toString(entity);//获得html源代码

}

}

} catch (Exception e) {

System.out.println("访问【"+url+"】出现异常!");

e.printStackTrace();

} finally {

httpClient.getConnectionManager().shutdown();

}

   //System.out.println(html);
    return html;  
}  


    上述代码只能抓静态网页数据
    麻烦看下上面代码怎么改才能获取动态网页数据啊 

1个回答

用法是一样的,只不过如果有些显示数据是由js生成的,就没办法

feiyun0112
feiyun0112 回复QingCheng11: 没有现成的,具体问题具体分析,用代码实现相同功能
接近 5 年之前 回复
QingCheng11
QingCheng11 不行的话 用其他什么接口或者方法可以获取啊
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
当网页采用js动态获取数据时,HttpClient应如何获取数据?
总的问题是这样的:因为我需要在两个城市来回跑,但是机票价格不断变化,就想通过.NET的HttpClient对携程网的网页进行访问,定时为每几小时一次,然后在后台进行一下分析,当某个机票价格贴近预期的最低价的时候通知我。 我用的VB.NET,但是C#应该更广泛,如果哪位大神可以帮忙回答用C#就可以。 代码如下,我先写了一个类 ``` Imports System.IO Imports System.Net.Http Public Class MySpider Dim callback As CallBackSub Public Sub CallBackTo(ByVal callclass As CallBackSub) callback = callclass End Sub Public Shared Async Sub GetPage(ByVal url As String, ByVal callclass As CallBackSub) Dim MyHttpClient As New HttpClient() Dim str As String = Await GetStringFromUrl(url) Dim callback0 As CallBackSub = callclass callback0.Invoke(str) End Sub Private Shared Async Function GetStringFromUrl(ByVal Url As String) As Task(Of String) Using client As HttpClient = New HttpClient() Try Dim response As HttpResponseMessage = Await client.GetAsync(Url) response.EnsureSuccessStatusCode() Dim responseBody As String = Await response.Content.ReadAsStringAsync() Return responseBody Catch e As HttpRequestException Console.WriteLine(vbLf & "Exception Caught!") Console.WriteLine("Message :{0} ", e.Message) Return Nothing End Try End Using End Function End Class ``` 这个类中的GetStringFromUrl是微软给的例程,然后我用了一个委托来把获取的字符串传递给Form窗体。(我的.NET仅仅勉强入门,正准备task和线程这些,就姑且用委托了,如果有正确的处理方法还麻烦告诉一下) 窗体代码就不贴出来了,就是一个textbox用来接收委托传过去的数据,然后一个button控制getpage 然后问题就在于,我发现我取出response中的数据后,根本找不到机票价格 ![图片说明](https://img-ask.csdn.net/upload/201901/29/1548767543_874475.jpg) 然后我在浏览器中把网页保存了之后,发现里面有很多js和css文件,我就想是不是有些数据是通过js动态获取的。 最后我试了Windows窗体控件WebBroswer,在赋值了URL之后,仅仅这一句代码就得到了我想要的机票价格数据 ``` TextBox1.Text = WebBrowser1.Document.All(1).InnerText ``` ![图片说明](https://img-ask.csdn.net/upload/201901/29/1548767560_985205.png) 虽然问题可以说暂时解决,但是我还是觉得,HttpClient作为微软推荐使用的一个类,应该不会处理不了这种动态获取数据的情况,就想请教下各位使用.NET得前辈,是否可以用HttpClient类处理这个问题呢? 如果能给出代码我会感激不尽,如果给一个资料的链接也一样很感谢!
通过HttpClient获取验证码图片问题
我想通过HttpClient获取http://202.97.135.173/Sehup/invseek/web.jsp这个网站下的验证码图片,可是获取到的图片显示'盗版网站',不知道是怎么回事。
httpclient获取到的网页内容和查看网页源代码的内容不同
最近在学httpclient,随便抓来一个网页:"http://ah.10086.cn",想通过httpget方法得到其原网页内容,本来以为很简单,先是碰到https验证问题,通过验证后拿到的网页源码竟然和鼠标右键查看网页源码不同,百思不得其解……
求助大神 用httpclient获取网页内容,然后筛选内容做一个查询
网页内容为很多用户信息 通过用户的特定信息 查询显示用户的全部信息。。
HttpClient怎么获取到iframe中的内容
用HttpClient登陆后,页面中的主要内容是通过iframe加载过来的 ![CSDN移动问答][1] 然后我试着用HttpClient构造参数去加载iframe时,却加载不了,post提交时返回状态码302,跳转到登陆界面。 请问怎样才能访问到该iframe,并获取到该iframe中的内容. 在网页上打开截取的包如下 ![CSDN移动问答][2] 直接复制URL 在新窗口打开iframe的话 如下 ![CSDN移动问答][3] 加了referer之后也是一样的 [1]: http://a.hiphotos.baidu.com/zhidao/pic/item/5ab5c9ea15ce36d3b55d416e38f33a87e950b117.jpg [2]: http://b.hiphotos.baidu.com/zhidao/pic/item/d1a20cf431adcbef0f21b358aeaf2edda3cc9f53.jpg [3]: http://h.hiphotos.baidu.com/zhidao/pic/item/908fa0ec08fa513d1149a1803f6d55fbb3fbd989.jpg
用httpclient或者htmlunit解析这个网页是无法获取到内容
用httpclient或者htmlunit解析这个网页是无法获取到内容, http://www.hfr.cc/forum.php?mod=viewthread&tid=88379&extra=page%3D1 这个帖子是英文的,如果是中文的就能获取到主贴的内容, 有谁知道这是为什么,有什么方法可以解决的吗?
HTTPClient可否保持一个会话,就好像浏览器自动跳转、或执行JS
在写一个网页获取的java程序时,用到了HTTPClient包,现在出现这样的问题,可能有一些网站防止获取,采用了一些跳转操作,用httpclient提交了请求后,返回的状态码是200,但这个网页中又加入了一些JS代码,比如: window.setTimeout('document.getElementById("formxh4t").submit();',3000); 这样也完成了页面的跳转,在浏览器中是可以自动的跳转,但HTTPClient就不行了,我想的是有没有什么方法可以跟踪住这个会话,就想在浏览器中一样。 当然,要是有别的什么jar包可以实现这个功能化,希望能推荐一些,谢谢!
java 利用 httpClient 模拟登陆网站时,网站重定向,我该怎么进入后继的网页啊!
我用的是httpclient4.3.6 。我模拟登陆我们学校的网站,获取了cookies,但是我用httpwatch看 有重定向的问题,我不知道怎么进入后面的网页!求解!我贴上代码,求代码详解,谢谢!!!小弟初学java 现需要做这个操作,很是艰难呀!感激不尽!
使用java加载动态网页
最近遇到一个难题,使用httpclient获取数据的时候,获取不到动态加载的数据,尝试过htmlunit,也试过jrex,但是感觉效果都不是很好。 百度了一下,别人说phantomjs也不错,但是,没怎么学过js,不是很懂如何使用phantomjs获取整个网页数据。 求各位大神给一下使用java加载动态网页的方式。(除了htmlunit和jrex)或者说说如何使用phantomjs获取整个网页数据。 小弟在此不胜感激
httpclient怎么抓取最终跳转的网站数据?
公司要做个内部系统,抓取某个网站的数据,而那个网站是抓取淘宝的数据。 其中有个页面很复杂,搜索关键词后,跳转到当前页面,当前页面有个javascript 跳转淘宝请求数据。 (当我在他们网站搜索时,他们 是抓取淘宝数据的缓存到自己的网站,然后展现出来。 当我直接在地址栏拼接他们获取数据的地址时,发生了跳转,跳到淘宝去了。) **重点那个js的那个地址是他们网站的地址,然后再跳转到淘宝请求数据的** **我的httpclient怎么抓到跳转的最终页面,也就是那个全是json数据的页面?** ![地址栏拼接参数跳转的最终页面](https://img-ask.csdn.net/upload/201503/24/1427197301_154936.png) 我自己的httpclient 抓取的静态方法如下: ``` public String reqget(String url,String params){ String paramsencode=null; HttpClient client=new DefaultHttpClient(); //获得服务器保存的coockie String cookieStr = ""; List<Cookie> list = cs.getCookies(); for (Cookie cookie : list) { cookieStr += cookie.getName() + "=" + cookie.getValue() + ";"; } if(params!=""&&params!=null){ //paramsencode = URLEncoder.encode(params, "GBK"); url=url+"?"+params; } //封装Get请求 HttpGet get=new HttpGet(url); get.setHeader("Cookie", cookieStr); HttpResponse response; try { //提交get请求 response=client.execute(get); //通过响应的状态编码 判断请求是否成功提交 if(response.getStatusLine().getStatusCode()==200) { //获得服务器端的响应结果 HttpEntity respEntity= response.getEntity(); String respStr=EntityUtils.toString(respEntity,"GBK"); return respStr; } //prgDlg.dismiss(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } ```
httpclient 代理 问题
public static void main(String[] args) throws Exception { System.out.println(doPost("http://172.21.0.158:8181/ShiroWeb/login")); } public static String doPost(String url) throws Exception{ String result = ""; // 创建HttpClient实例 CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建Post方法实例 HttpPost httpPost = new HttpPost(url); HttpHost proxy = new HttpHost("180.97.237.199", 8080); RequestConfig requestConfig = RequestConfig.custom().setProxy(proxy).build(); httpPost.setConfig(requestConfig); httpPost.setHeader("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); //执行请求 CloseableHttpResponse response = httpclient.execute(httpPost); //返回的请求内容 HttpEntity entity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); if(statusCode == 200){ result = entity.toString(); } return result; } 用代理访问 www 开头的网站就可以,但是访问自己主机 就不行,因为我想看看一下ip是不是真的变成代理的ip . 。我在自己服务器打了断电并且用request.getr emoteAd dr() ; 获取ip 。 现在问题是这样访问不了 repones 状态吗:504.
用HttpClient模拟登录带验证码的网站,如何保证获取的验证码和提交的验证码一致
使用程序模拟登录一个带验证码的网站,我先获取验证码图片的路径, 然后把验证码图片保存到本地,手动识别后,将验证码和用户名和密码一起 post提交模拟登录,我怀疑是获取的验证码和提交的验证码不一致的导致的, 在下载的时候也去请求了这个验证码图片的路径,这样验证码也会刷新,这样导致 验证码不一致的问题出现,请问大神们有什么好的方法来处理这个问题吗? ps:我尝试百度了下,有人说将下载验证码图片时获取的Cookie取下来然后在和 验证码一起post请求的时候再在之前的Cookie带过去,这样可以解决这个问题, 但是我试了,还是不行。
httpclient的疑问求解答!
&nbsp;&nbsp;&nbsp; 我使用httpclient来爬去固定一些网站的数据信息,由于使用了线程池因此在抓取的时候经常碰到有异常! <br /> <br /><pre name="code" class="java"> Exception in thread "pool-226-thread-200" java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated. Make sure to release the connection before allocating another one. at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199) at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:390) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) at com.hc.HttpClientFactory.httpGet(HttpClientFactory.java:127) at com.hc.Fetcher.fetchType(Fetcher.java:449) at com.hc.Fetcher.fetchType(Fetcher.java:466) at com.hc.Fetcher.fetchType(Fetcher.java:466) at com.hc.Fetcher.httpByCode(Fetcher.java:286) at com.hc.Fetcher.FetchHtml(Fetcher.java:72) at com.thread.FetchHtml.fetchStart(FetchHtml.java:64) at com.thread.FetchHtml.run(FetchHtml.java:209) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) </pre> <br /> <br /> <br />这里有我的线程池的实现: <br /><pre name="code" class="java"> logger.debug("启动"); // 获得抓取配置数据 List songsList = songsService.getSongs(); List provList = provService.getProvs(); if (0 &lt; songsList.size() &amp;&amp; 0 &lt; provList.size()) { // 构造一个线程池 ThreadPoolExecutor // 构造一个线程池 producerPool = new ThreadPoolExecutor(40, 80, 1, TimeUnit.SECONDS, new ArrayBlockingQueue&lt;Runnable&gt;(songsList.size() * provList.size()),new ThreadPoolExecutor.CallerRunsPolicy()); // 循环开始抓取数据 for (Object objS : songsList) { // 得到单条彩铃信息 Map sMap = (Map) objS; for (Object objP : provList) { // 得到单个省份抓取配置信息 Map pMap = (Map) objP; if (sMap.get("TELTYPE").equals(pMap.get("TELTYPE"))) { FetchHtml fhFetchHtml = new FetchHtml(sMap, pMap); producerPool.execute(fhFetchHtml); } } } // 停止线程 producerPool.shutdown(); } logger.debug("结束"); </pre> <br /> <br />这里是我httpclient的配置信息: <br /><pre name="code" class="java"> import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.net.ssl.SSLHandshakeException; import org.apache.http.HttpEntity; import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.HttpVersion; import org.apache.http.NameValuePair; import org.apache.http.NoHttpResponseException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.HttpRequestRetryHandler; import org.apache.http.client.ResponseHandler; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicHeader; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.params.CoreProtocolPNames; import org.apache.http.protocol.ExecutionContext; import org.apache.http.protocol.HTTP; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils; import com.anal.UtilComm; public class HttpClientFactory { private static final String CHARSET_GBK = "GBK"; /** * 异常自动恢复处理 * 使用HttpRequestRetryHandler接口实现请求的异常恢复 */ private static HttpRequestRetryHandler requestRetryHandler = new HttpRequestRetryHandler() { // 自定义的恢复策略 public synchronized boolean retryRequest(IOException exception, int executionCount, HttpContext context) { // 设置恢复策略,在发生异常时候将自动重试3次 if (executionCount &gt; 3) { // 超过最大次数则不需要重试 return false; } if (exception instanceof NoHttpResponseException) { // 服务停掉则重新尝试连接 return true; } if (exception instanceof SSLHandshakeException) { // SSL异常不需要重试 return false; } HttpRequest request = (HttpRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST); boolean idempotent = (request instanceof HttpEntityEnclosingRequest); if (!idempotent) { // 请求内容相同则重试 return true; } return false; } }; /** * 使用ResponseHandler接口处理响应 * HttpClient使用ResponseHandler会自动管理连接的释放 * 解决了对连接的释放管理 */ private static ResponseHandler&lt;String&gt; responseHandler = new ResponseHandler&lt;String&gt;() { // 自定义响应处理 public synchronized String handleResponse(HttpResponse response) throws ClientProtocolException, IOException { HttpEntity entity = response.getEntity(); if (entity != null) { String charset = EntityUtils.getContentCharSet(entity) == null ? CHARSET_GBK : EntityUtils.getContentCharSet(entity); return new String(EntityUtils.toByteArray(entity), charset); } else { return null; } } }; /** * 获取DefaultHttpClient实例 * * @param charset * 参数编码集, 可空 * @return DefaultHttpClient 对象 */ public static DefaultHttpClient getDefaultHttpClient(final String charset){ DefaultHttpClient httpclient = new DefaultHttpClient(); ArrayList headers = new ArrayList(); headers.add(new BasicHeader("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*")); headers.add(new BasicHeader("Accept-Language", "zh-cn,en-us,zh-tw,en-gb,en;")); headers.add(new BasicHeader("Accept-Charset","gbk,gb2312,utf-8,BIG5,ISO-8859-1;")); headers.add(new BasicHeader("Connection","Close")); headers.add(new BasicHeader("Cache-Control","no-cache")); headers.add(new BasicHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA)")); httpclient.getParams().setParameter("http.default-headers", headers); //设置http头信息 httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); //模拟浏览器,解决一些服务器程序只允许浏览器访问的问题 httpclient.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, charset == null ? HTTP.UTF_8 : charset); httpclient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,30000); httpclient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT,60000); httpclient.setHttpRequestRetryHandler(requestRetryHandler); return httpclient; } /** * get方式提交抓取网页 * * @param url * @param charset * @throws IOException * @throws ClientProtocolException * @throws IOException */ public static String httpGet(HttpClient httpClient, String url, String charset) throws ClientProtocolException, IOException { HttpGet httpget = new HttpGet(url); String content = null; // 发送请求,得到响应 HttpResponse response = httpClient.execute(httpget); HttpEntity entity = response.getEntity(); if (entity != null &amp;&amp; HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) { charset = EntityUtils.getContentCharSet(entity) == null ? CHARSET_GBK : EntityUtils.getContentCharSet(entity); content = UtilComm.getString(entity.getContent(),charset); } abortRequest(httpget); return content; } /** * post方式提交抓取网页 * * @param url * @param charset * @throws IOException * @throws ClientProtocolException */ public static String httpPost(HttpClient httpClient, String url, String charset) throws ClientProtocolException, IOException { HttpPost httppost = new HttpPost(url); // 得到提交的POST值 List&lt;NameValuePair&gt; nvpsList = UtilComm.getNameValuePairs(url); httppost.setEntity(new UrlEncodedFormEntity(nvpsList, charset)); // 得到返回值 String content = null; HttpResponse response = httpClient.execute(httppost); HttpEntity entity = response.getEntity(); if (entity != null &amp;&amp; HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) { charset = EntityUtils.getContentCharSet(entity) == null ? CHARSET_GBK : EntityUtils.getContentCharSet(entity); content = UtilComm.getString(entity.getContent(),charset); } abortRequest(httppost); return content; } /** * 释放HttpClient连接 * * @param hrb * 请求对象 * @param httpclient * client对象 */ public static void abortRequest(final HttpRequestBase hrb){ if (hrb != null &amp;&amp; hrb.isAborted()) { hrb.abort(); } } public static void shutdown(final HttpClient httpclient) { if (httpclient != null) { httpclient.getConnectionManager().shutdown(); } } } </pre> <br /> <br />经常碰到这类异常,帮忙看看,什么原因造成的呢?
Httpclient登录联通网上营业厅返回resultCode:9997问题。
最近公司项目要做一个把联通网上营业厅集成到我们网站来。也就是我需要用httpclient来模拟登录。于是去抓了一下包。 第一个请求(get) https://uac.10010.com/portal/Service/checkRelease?callback=jQuery1720617107516456003_1511159960382&_=1511159961141 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162198_970812.png) 第二个请求(get) https://uac.10010.com/portal/Service/CheckNeedVerify?callback=jQuery17206564225944591909_1511159961003&userName=18602300879&pwdType=01&_=1511159993091 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162290_293484.png) 第三个请求(get)发短信。 https://uac.10010.com/portal/Service/SendCkMSG?callback=jQuery17206564225944591909_1511159961004&req_time=1511160013454&mobile=18602356789&_=1511160013457 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162229_613914.png) 这里调用了发短信的接口可以看到cookie里边有一个uacverifykey,但是我用的CookieStore cookieStore=new BasicCookieStore(); httpclient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();然后打印出cookie,没有获取得到uacverifykey。只获取到了ckuuid这个数据。而没有uacverifykey 最后一步(登录)这个时候在cookie这也传了uacverifykey https://uac.10010.com/portal/Service/MallLogin?callback=jQuery17206564225944591909_1511159961005&req_time=1511160027220&redirectURL=http%3A%2F%2Fwww.10010.com&userName=18602356789&password=123456&pwdType=01&productType=01&redirectType=01&rememberMe=1&verifyCKCode=726440&_=1511160027222 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162315_992586.png) 执行这个登录之后就返回jQuery172007908107331762243_1511161316459({resultCode:9997}); 也不知道是什么问题。 跪求大家看看有没有研究过。。或则给我说说是什么地方出了问题了。
java如何获取ajax网页内容
需求是填写一个jsp路径,在控制台返回该jsp生成的动态网页的html代码,我用的是HttpClient这个类实现的,但是返回的页面代码没有发送ajax请求获得数据,页面用浏览器打开是不完整的,求大神解答。
android获取网页源码问题
以下是我从网上找的获取网页源码的 代码 所有包都已经正常导入 但是编译后 程序一运行就崩溃 求大神指点 import 略; /** * @author Jasonzhou * @since 2013-03-21 * @功能 读取网页内容 * @说明 获取网页的全部代码后使用jsuop进行处理, 以便得到想要的内容 **/ public class MainActivity extends Activity { public String url = "http://blog.csdn.net/jasonzhou613/article/details/7905388"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); manageException();// 处理抛出异常 TextView tv = (TextView) findViewById(R.id.text); String myString = null; myString = posturl(url); // 设置屏幕显示 Log.i("---网页代码---", "" + myString); String html = myString; Document doc = Jsoup.parse(html); tv.setText(doc.title()); } /** * 获取参数指定的网页代码,将其返回给调用者,由调用者对其解析 返回String */ public String posturl(String url) { InputStream is = null; String result = ""; try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { return "Fail to establish http connection!" + e.toString(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "utf-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { return "Fail to convert net stream!"; } return result; } public void manageException() { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() // or // .detectAll() // for // all // detectable // problems .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath() .build()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
大神求助!通过API获取mendedely外文网站的用户信息
大四毕设要获取该网站的用户数据进行研究,提供了API接口。一般的API通过HttpClient就能直接获取,但是这里有一个AccessToken,需要验证,并且看使用介绍,不能使用pure http,要是用tls/ssl,不知道怎么设置。另外参照网站给的例子,直接用curl获取,做了一下,一直返回这样的结果。求各位大神帮忙解决,时间不够了/(ㄒoㄒ)/~~寻求解决办法,谢谢。 附:一张是获取accesstoken,一张是给的例子,一张是我直接运行实例出现的问题。![![![图片说明](https://img-ask.csdn.net/upload/201705/13/1494643962_4039.png)图片说明](https://img-ask.csdn.net/upload/201705/13/1494643950_922550.png)图片说明](https://img-ask.csdn.net/upload/201705/13/1494643943_111873.png)
请问下mininet中如何获取网页文件
![图片说明](https://img-ask.csdn.net/upload/201902/22/1550844654_455022.png)![图片说明](https://img-ask.csdn.net/upload/201902/22/1550844662_743864.png) 请问一下,H1启动HTTPSERVER,WEB端口为4330,H2作为HTTPCLIENT,如何让H2获取H1的网页文件呐?非常感谢!
DefaultHttpClient()不推荐使用如何解决?
今天在搞一个简单的获取网页源码的例子时发现HttpClient httpclient = new DefaultHttpClient(); 这句无法使用了。 提示是DefaultHttpClient()过时了。求大神指点,该如何解决?
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问