コードを見つけたが、すべてのヘッダーを取得していない引用されたリンクの下にある、AndroidアクティビティでWebサイトのHTTPヘッダーを取得する必要があるAndroidアプリを開発しています。
http://www.mkyong.com/java/how-to-get-http-response-header-in-java/
下の画像に示すような結果が必要です
(ソース: osxdaily.com )
サポートしてください。
コードを見つけたが、すべてのヘッダーを取得していない引用されたリンクの下にある、AndroidアクティビティでWebサイトのHTTPヘッダーを取得する必要があるAndroidアプリを開発しています。
http://www.mkyong.com/java/how-to-get-http-response-header-in-java/
下の画像に示すような結果が必要です
(ソース: osxdaily.com )
サポートしてください。
Android でも動作するはずの Java サンプル コードを確認してください。
方法-1
URL url = new URL("http://www.google.com:80");
URLConnection conn = url.openConnection();
Map<String, List<String>> headerFields = conn.getHeaderFields();
Set<String> headerFieldsSet = headerFields.keySet();
Iterator<String> hearerFieldsIter = headerFieldsSet.iterator();
while (hearerFieldsIter.hasNext()) {
String headerFieldKey = hearerFieldsIter.next();
List<String> headerFieldValue = headerFields.get(headerFieldKey);
StringBuilder sb = new StringBuilder();
for (String value : headerFieldValue) {
sb.append(value);
sb.append("");
}
System.out.println(headerFieldKey + "=" + sb.toString());
}
Method-2 (参照: Android の HttpClient からヘッダーを取得する)
HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet("http://mkyong.com");
HttpResponse response = client.execute(request);
//get all headers
Header[] headers = response.getAllHeaders();
for (Header header : headers) {
System.out.println("Key : " + header.getName()
+ " ,Value : " + header.getValue());
}
//get header by 'key'
String server = response.getFirstHeader("Server").getValue();
それがあなたを助けることを願っています..
あなたが持っているとしましょう
HttpResponse response ;
(特定のヘッダーの場合)
Header[] headers = response.getHeaders("Server");
if (headers.length > 0) {
String value = headers[0].getValue();
すべてのヘッダーを取得する
Header[] headers = response.getAllHeaders();
for(int i =0 ; i<headers.length;i++)
{
System.out.println("header : "+i+" - > "+headers[i]);
}
これを試して:
HttpResponse
応答 ; // http レスポンス
レスポンスからエンティティを取得
final HttpEntity entity = response.getEntity();
if(entity == null) {
return;
}
エンティティからヘッダー オブジェクトを取得します。これを参照
final Header header = entity.getContentEncoding();
if (header == null) {
return;
}
各ヘッダ要素を取得こちらを参照
for (HeaderElement h : header.getElements()) {
if (h.getName().equalsIgnoreCase(HEADER_PARAMETER_VALUE)) {
h.getValue();
return;
}
}
http post または get に応じて、getAllHeaders または getHeaders メソッドを使用できます。これは http 投稿の例です。
HTTP POST メソッド:
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
最初の方法:
public Header[] getAllHeaders ()
Added in API level 1
Returns all the headers of this message. Headers are orderd in the sequence they will be sent over a connection.
Returns
all the headers of this message
2番目の方法の説明:
public Header[] getHeaders (String name)
Added in API level 1
Returns all the headers with a specified name of this message. Header values are ignored. Headers are orderd in the sequence they will be sent over a connection.
Parameters
name the name of the headers to return.
Returns
the headers whose name property equals name.