2015-10-09 2 views
0

Я использую запросы python HTTP POST для отправки данных на определенный сторонний веб-сайт, которого я не являюсь. Но я не могу заставить его работать, потому что я получаю код статуса 414.Ошибка Circumvent 414 в HTTP POST с использованием запросов python

url = "http://someurl.com" 
headers = { 
    'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8" 
} 
params = {'input': "Lorem ipsum... very long string"} 
result = requests.post(url, params=params, headers=headers) 
print(result.status_code) 

Как я могу заставить это работать?

+0

Это ошибка со своего сервера - вы не можете исправить это на своем конце. Можете ли вы использовать более короткую строку? (B/c 414 «URL слишком длинный для обработки») –

+0

Вы уверены, что не должны передавать 'params' как« данные », например. 'request.post (url, data = params, headers = headers)' –

+0

@John La Rooy, он работал для параметров для ограниченной строки, теперь я использовал данные arg, и да, это сработало. Благодарю. – macdelacruz

ответ

2

Глядя на документы, кажется, что result = requests.post(url, params=params, headers=headers) должно быть result = requests.post(url, data=params, headers=headers) (кредит Джону Рою).

IIRC params флаг означает, что параметры, которые вы видите, прикреплены к концу вашего URL, а data - это данные POST.

+0

Я использовал Firebug, чтобы узнать, как отправлять данные на сайт. Я просмотрел параметры в методе «Запрос» и нашел параметр «ввода», где я могу вводить данные. Он работал нормально до строки порядка 1000 символов. Теперь я попытался с вашим предложением, используя данные вместо params, и voila, это сработало! Благодарю. – macdelacruz

+0

@MarkAnthonyDelaCruz Если это решило вашу проблему, подумайте, нажав кнопку «принять ответ» и повысьте :) <3 –

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