Я создаю плагин SublimeText 2, который отправляет данные к серверу, которым я управляю. Я написал основы, в то время как на поезде, используя мой телефон в качестве горячей точки WiFi и все хорошо работало. Тогда, когда я возвратился домой, я получил 400 Плохих ответов Запроса от своего сервера, неважно, что я пытался отправить. Я отложил свой ноутбук на моей личной горячей точке, и ошибка ушла. Вот детали:
"Клиент" в этом случае - Возвышенный текст 2. Если вы уже не знаете, их плагины написаны в Пайтоне, и я использую urllib, urllib2, и httplib, чтобы обработать запросы. Вот соответствующий Пайтон, который обращается с просьбой:
params = urllib.urlencode({'title': 'ST2 Note', 'content': data, 'user': user, 'pass': pswd})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("staging.myserver.me:80")
conn.request("POST", "staging.myserver.me/st2", params, headers)
response = conn.getresponse()
data2 = response.read()
print data2
conn.close()
Кодекс выше отправляет ПОЧТОВЫЙ запрос очень хорошо. Если я нахожусь на определенной связи, мой сервер определенно понимает его, потому что я установил его просто реагировать на то, что я посылаю в ПОЧТОВЫХ данных. С просьбой обращаются к части PHP (Codeigniter) применение и да, я определенно настроил его так, чтобы защита CSRF была выключена для этого конкретного URL, таким образом, я знаю, что это не проблема. Сам код PHP довольно неинтересный, но я установил его реагировать на заголовки сервера, и это - то, что он послал, когда я обратился с просьбой от связи, которая работает:
Host: staging.myserver.me
Accept-Encoding: identity
Content-Length: 56
Content-type: application/x-www-form-urlencoded
Accept: text/plain
Via: HTTP/1.1 akrmspsrvz9ts212.wnsnet.attws.com
Какие-либо идеи, почему сервер понимает запросы от некоторых связей, но не других?