Skip to content

Commit bf9f821

Browse files
authored
Fix content type on Web API requests (#276)
* Pass API data as form-encoded, not JSON
1 parent 995afd6 commit bf9f821

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

slackclient/server.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def send_to_websocket(self, data):
149149
150150
"""
151151
try:
152-
data = json.dumps(data, ensure_ascii=False)
152+
data = json.dumps(data)
153153
self.websocket.send(data)
154154
except Exception:
155155
self.rtm_connect(reconnect=True)
@@ -260,7 +260,7 @@ def api_call(self, method, timeout=None, **kwargs):
260260
response = self.api_requester.do(self.token, method, kwargs, timeout=timeout)
261261
response_json = json.loads(response.text)
262262
response_json["headers"] = dict(response.headers)
263-
return json.dumps(response_json, ensure_ascii=False)
263+
return json.dumps(response_json)
264264

265265
# TODO: Move the error types defined below into the .exceptions namespace. This would be a semver
266266
# major change because any clients already referencing these types in order to catch them

slackclient/slackrequest.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import json
2-
31
import requests
42
import six # noqa: F401
53

@@ -68,7 +66,6 @@ def do(self, token, request="?", post_data=None, domain="slack.com", timeout=Non
6866

6967
headers = {
7068
'user-agent': self.get_user_agent(),
71-
'Content-Type': 'application/json',
7269
'Authorization': 'Bearer {}'.format(token)
7370
}
7471

@@ -92,7 +89,7 @@ def do(self, token, request="?", post_data=None, domain="slack.com", timeout=Non
9289
return requests.post(
9390
url,
9491
headers=headers,
95-
data=json.dumps(post_data),
92+
data=post_data,
9693
files=files,
9794
timeout=timeout,
9895
proxies=self.proxies

tests/test_slackrequest.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,12 @@ def test_plural_field(mocker):
6363
request.do('xoxb-123','conversations.open', {'users': ['U123', 'U234', 'U345']})
6464
args, kwargs = requests.post.call_args
6565

66-
assert requests.post.call_count == 1
67-
assert 'https://slack.com/api/conversations.open' == args[0]
68-
assert kwargs['data'] == '{"users": "U123,U234,U345"}'
66+
assert kwargs['data'] == {'users': 'U123,U234,U345'}
67+
68+
request.do('xoxb-123','conversations.open', {'users': "U123,U234,U345"})
69+
args2, kwargs2 = requests.post.call_args
70+
71+
assert kwargs2['data'] == {'users': 'U123,U234,U345'}
6972

7073

7174
def test_post_file(mocker):
@@ -80,7 +83,7 @@ def test_post_file(mocker):
8083

8184
assert requests.post.call_count == 1
8285
assert 'https://slack.com/api/files.upload' == args[0]
83-
assert {'filename': 'slack_logo.png'} == json.loads(kwargs['data'])
86+
assert {'filename': 'slack_logo.png'} == kwargs['data']
8487
assert kwargs['files'] is not None
8588

8689

@@ -93,7 +96,7 @@ def test_get_file(mocker):
9396

9497
assert requests.post.call_count == 1
9598
assert 'https://slack.com/api/files.info' == args[0]
96-
assert {'file': "myFavoriteFileID"} == json.loads(kwargs['data'])
99+
assert {'file': "myFavoriteFileID"} == kwargs['data']
97100
assert kwargs['files'] is None
98101

99102

@@ -108,5 +111,5 @@ def test_post_attachements(mocker):
108111

109112
assert requests.post.call_count == 1
110113
assert 'https://slack.com/api/chat.postMessage' == args[0]
111-
assert {'attachments': [{'title': 'hello'}]} == json.loads(kwargs['data'])
114+
assert {'attachments': [{'title': 'hello'}]} == kwargs['data']
112115
assert kwargs['files'] is None

0 commit comments

Comments
 (0)