Есть ли способ сделать запрос GET без получения основного содержимого? - PullRequest
0 голосов
/ 08 сентября 2010

Я пытаюсь выполнить HEAD-запросы для перехода по 302 ссылкам, однако эта ссылка: http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGrJk-F7Dmshmtze2yhifxRsv8sRg&url=http://www.mtv.com/news/articles/1647243/20100907/story.jhtml

проблематично, потому что запрос HEAD возвращает 200 OK, а запрос GET возвращает ожидаемый код состояния 302.

Так что мне нужно будет выполнить запрос GET, но я бы предпочел не платить за дополнительное время пропускной способности, полученное при получении всего HTML-документа. Кто-нибудь знает, как сделать GET без возврата тела?

ОБНОВЛЕНИЕ: принял совет Дэвида, чтобы сделать заголовок Range, но они все еще игнорируют его

GET /news/url?sa=t&fd=R&usg=AFQjCNGrJk-F7Dmshmtze2yhifxRsv8sRg&url=http://www.mtv.com/news/articles/1647243/20100907/story.jhtml HTTP/1.1
Range: bytes=0-10
x-ms-range: 0-600
Host: news.google.com
Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

HTTP/1.1 302 Moved Temporarily
Content-Type: text/html; charset=UTF-8
Location: http://www.mtv.com/news/articles/1647243/20100907/story.jhtml
Content-Length: 258
Date: Wed, 08 Sep 2010 20:28:16 GMT
Expires: Wed, 08 Sep 2010 20:28:16 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Set-Cookie: PREF=ID=ef5f1bc768645c5e:TM=1283977696:LM=1283977696:S=5n26IrEDpcQTJIb1; expires=Fri, 07-Sep-2012 20:28:16 GMT; path=/; domain=.google.com

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.mtv.com/news/articles/1647243/20100907/story.jhtml">here</A>.
</BODY></HTML>

Ответы [ 2 ]

0 голосов
/ 09 сентября 2010

В приведенном вами конкретном примере вы можете просто извлечь его из параметра url исходного URL.Но для более общего подхода я бы придерживался предложений Дэвида М.

0 голосов
/ 09 сентября 2010

1) Сообщите об ошибке владельцу веб-сервера.

2) Попробуйте использовать в вашем запросе заголовок Range .

3) Если это не сработает, вы можете просто повесить соединение после того, как получите нужные заголовки?

...