2014-11-05 2 views
2

У меня проблемы. Я пытаюсь отправить POST и попытаться следовать документации, но я не могу понять, что это правильно.Проблемы с сообщением через python

на GitHub: запросы https://github.com/trtmn/Python

Напряжения приветствуются!

# Getting documentation from : 
#https://docs.python.org/2/howto/urllib2.html 
import urllib 
import urllib2 

url = 'https://hooks.slack.com/services/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' 
values = {"username": "webhookbot", "text": "This is posted to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"} 

data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
the_page = response.read() 

ответ

3

похоже, что мне нужно было подкрепить его как JSON (который я знал, но не знал, как). Спасибо Тиму Г. за помощь.

Так вот функциональный код:

import urllib2 
import json 

url = 'https://hooks.slack.com/services/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' 
values = {"username": "webhookbot", "text": "This is posted to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"} 

data = json.dumps(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
the_page = response.read() 
1

Использование HTTPLIB в качестве альтернативы для POST:

* импорт HTTPLIB

conn = httplib.HTTPSConnection(host) 
conn.request('POST',urI,request_body, headers)  
response = conn.getresponse() 
resp_status=response.status 
resp_reason=response.reason 
resp_body=response.read() 
conn.close()* 

Смотрите, если это помогает.

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