2015-02-06 4 views
0

Мне нужно провести некоторое тестирование сервера, чтобы я хотел запрограммировать длину содержимого и не хочу, чтобы библиотека запросов запрашивала длину содержимого.Установить длину содержимого библиотеки запросов

Кода я написал до сих пор выглядит следующим образом:

date = time.strftime("%a, %d %b %Y %H:%M:%S GMT",time.gmtime(time.time())) 
sample_header = { 
    "Host": "xyz.xyz.zyz.com", 
    "Content-Type": "application/json; charset=utf-8", 
    "Date": date   
    # "Authorization": "not_specified" 
    } 

sample_payload = { 
    "ci":{ 
     "pev":1, 
     "affid":"243324", 
     "sdkv":"My SDK Version", 
     "prn":"My Security Product", 
     "pv":"1.0.1", 
     "cliid":"4fe836859578e81ae5b0a061d6949634", 
     "rid":234343 
     }, 
    "q":[{"op":"url","url":"http://www.yahoo.com"}] 
} 

    def test_1677(self): 
     self.tc_id="gtirest-1677" 
     s = requests.Session() 
     req = requests.Request('POST', url, headers=sample_header, data=json.dumps(sample_payload)) 
     prepared = req.prepare() 
     # del prepared.headers['Content-Lenght'] 

     del prepared.headers['Content-Length'] 

     prepared.headers['Content-Lenght'] = 99999 
     response = s.send(prepared) 
     print "Response code" 
     print response.status_code 
     print response.text 
     print response.request.headers 

Это дает 400 Bad Request, но когда я посылаю подобный контент длину дает 413 объекта слишком большому, который является правильным, как я могу получение идеального то же самое в библиотеке запросов.

Я сделал Wireshark захвата, и это показывает следующее:

С библиотекой запроса: Wireshark Capture request

С завитка:

Wireshark Capture curl

Почему в библиотеке запроса это дает 400 плохой запрос. Я вижу, что полезная нагрузка теперь исправляется без запроса.

+0

Почему в библиотеке запросов это дает 400 плохих запросов. Я вижу, что полезная нагрузка теперь исправляется без запроса. –

ответ

1

опечатка заголовок:

prepared.headers['Content-Lenght'] = 99999 
#        ^^ 

Это прописано Lengtht, затем h.

Если вы задаете значение заголовка, сначала не нужно удалять заголовок; если бы вы не удалили первый заголовок , вы бы заметили, что будут два заголовка, и опечатка сразу же выскочила бы.

+0

Да, этот вопрос пришел мне на ум, но я думал, что запрос может что-то делать. Спасибо, Питерс. Я просто сделал опечатку и сломал себе голову за последние 120 минут. –

Смежные вопросы