/*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/package org.apache.http.examples.client;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;/**
* This example demonstrates how to abort an HTTP method before its normal completion.
*/
public class ClientAbortMethod { public final static void main(String[] args) throws Exception {
HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet("http://www.baidu.com"); System.out.println("executing request " + httpget.getURI());
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity(); System.out.println("----------------------------------------");
System.out.println(response.getStatusLine().getStatusCode());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
System.out.println("content-type:" +entity.getContentType().getValue());
}
System.out.println("----------------------------------------"); // Do not feel like reading the response body
// Call abort on the request object
httpget.abort();
// When HttpClient instance is no longer needed,
// shut down the connection manager to ensure
// immediate deallocation of all system resources
httpclient.getConnectionManager().shutdown();
}}结果 :executing request http://www.baidu.com
----------------------------------------
200
Response content length: 3509
content-type:text/html
----------------------------------------
用网面打开www.baidu.com 编码会自动设置成GB312
为什么httpClient里没取得编码看下了其源代码头 ,httpClient 没用java 里URLconnection 去实现,而是用最底层的socket 去实现的要怎么要才取得content-type里的charset ???
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/package org.apache.http.examples.client;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;/**
* This example demonstrates how to abort an HTTP method before its normal completion.
*/
public class ClientAbortMethod { public final static void main(String[] args) throws Exception {
HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet("http://www.baidu.com"); System.out.println("executing request " + httpget.getURI());
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity(); System.out.println("----------------------------------------");
System.out.println(response.getStatusLine().getStatusCode());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
System.out.println("content-type:" +entity.getContentType().getValue());
}
System.out.println("----------------------------------------"); // Do not feel like reading the response body
// Call abort on the request object
httpget.abort();
// When HttpClient instance is no longer needed,
// shut down the connection manager to ensure
// immediate deallocation of all system resources
httpclient.getConnectionManager().shutdown();
}}结果 :executing request http://www.baidu.com
----------------------------------------
200
Response content length: 3509
content-type:text/html
----------------------------------------
用网面打开www.baidu.com 编码会自动设置成GB312
为什么httpClient里没取得编码看下了其源代码头 ,httpClient 没用java 里URLconnection 去实现,而是用最底层的socket 去实现的要怎么要才取得content-type里的charset ???
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>httpClient怎么取得编码的问题</title>
<link href="http://c.csdn.net/bbs/t/5/t5.css" rel="stylesheet" type="text/css" />
<link href="http://www.csdn.net/images/favicon.ico" rel="SHORTCUT ICON" />
这个就是本网页的头文件,你代码解析其中的红色部分不就行了么。
然后自己找
“charset=”后面的字符串就是编码/