我想对以下端点进行api调用https://cloud.ibm.com/apidocs/assistant-v2#send-user-input-to-assistant
我的代码如下:
session = requests.Session()
session.auth = (WATSON_USERNAME, WATSON_PASSWORD)
data = { "input" : {"text" :"my message"} }
response = session.post(
f'{WATSON_ENDPOINT}/{session_id}/message?{WATSON_API_VER}',
headers={"Content-Type": "application/json"},
data=data)
我从华生那里得到的答复是
{ "error": "Unexpected token i in JSON at position 0", "code":400 }
如果我将
data
更改为{ "X" : {"text" :"my message"} }
{ "error": "Unexpected token X in JSON at position 0", "code":400 }
你知道为什么我的
data
负载不能像api提供的示例那样被解析吗? 最佳答案
使用json=
参数来POST
带有请求的json。
它将自动编码您的数据并添加Content-Type: application/json
标题。
import requests
session = requests.Session()
session.auth = (WATSON_USERNAME, WATSON_PASSWORD)
data = {"input": {"text": "my message"}}
url = f'{WATSON_ENDPOINT}/{session_id}/message?{WATSON_API_VER}'
response = session.post(url, json=data)
print(response.status_code, response.text)