2014-05-17 3 views
1

FIDDLER를 사용하여 HTTP 요청을 가로 채었습니다.파이썬을 사용하여 HTTP 요청 보내기

파이썬을 사용하고 내 브라우저가 아닌 동일한 요청을 보내고 싶습니다.

나는 약간의 연구를 수행하여 httplib을 사용할 수있는 방법을 찾았지만 어떤 이유로 내 코드가 작동하지 않습니다.

내 컴퓨터에서 어떤 요청도 보내지 않습니다 (FIDDLER를 사용하여이를 확인할 수 있음).

어떤 아이디어가 잘못 되었나요?

import httplib 

headers = { 
"Host":" unive.edu", 
"Connection":" keep-alive", 
"Content-Length":" 5142", 
"Cache-Control":" max-age=0", 
"Accept":" text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", 
"Origin":" http://unive.edu", 
"User-Agent":" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36", 
"Content-Type":" application/x-www-form-urlencoded", 
"DNT":" 1", 
"Referer":" http://unive.edu/webtixsnetglilot/SelectCoursePage2.aspx?dtticks=635358672778578750&hideBackButton=1", 
"Accept-Encoding":" gzip,deflate,sdch", 
"Accept-Language":" en-US,en;q=0.8,he;q=0.6", 
"Cookie":" ASP.NET_SessionId=c5nch3ouzxkaaa5bk1rflaic; __atuvc=1%7C16%2C1%7C17%2C0%7C18%2C0%7C19%2C1%7C20; __utma=184162612.90089091.1384326557.1400242958.1400259831.35; __utmb=184162612.4.10.1400259831; __utmc=184162612; __utmz=184162612.1384326557.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SS#177904#2#1#StopLoad#635358666509203750=true; SS#177904#2#1#StopLoad#635358672778891250=true; hfSKey=|||||||||gli; hfOIKey=imVrnYvw; SS#177904#2#1#StopLoad#635358677931547500=true;" 
} 

body = "" 

conn = httplib.HTTPConnection("unive.edu") 
conn.request("POST", "/web/SelectCoursePage2.aspx?dtticks=635358682524828750&hideBackButton=1", None, headers) 
res = conn.getresponse() 

감사합니다.

답변

1

문제는 당신이 POST에 서버를 5142 바이트를 보낼 거라고 주장하는 Content-Length 헤더를 가지고 있다는 것입니다 :

+0

감사합니다. – Michael

0

그렇지 않으면 무엇을 내가 사용하는 것은 print(res.status)

을 시도하십시오 몸은 없지만 신체 내용을 보내지는 않습니다. 결과적으로 서버는 본문을 기다리는 동안 중단됩니다. 그것은 아마도 몇 분 안에 시간 초과로 실패 할 것입니다.

이 문제를 해결하려면 Content-Length 헤더가 본문 길이 (바이트)와 일치해야합니다.

+0

사실은 "res = conn.getresponse()"에 고정되어 있습니다. 그 후 명령에 도달하지 않습니다. – Michael