鍍金池/ 問答/Python  Linux  HTML/ python 發(fā)送數(shù)據(jù)到另一臺服務(wù)器

python 發(fā)送數(shù)據(jù)到另一臺服務(wù)器

import requests    
content = '#DRETITLE 禁限行令讓二手車更難出手 西安市民擔(dān)心街頭僵尸車激增 \n#DREFIELD PUBLISHDATE="2018-07-26 08:12:27" '
r = requests.get('http://127.0.0.1:5000/drop_TextRepeat/', data=content)

如圖我想把content里面的字符串?dāng)?shù)據(jù)發(fā)送到另一臺電腦,(目前用的本機(jī)做測試,cmd里有正在執(zhí)行接收數(shù)據(jù)的restful),但是這樣寫總是報錯,報錯如下,請問各位大佬這個問題該如何處理

r = requests.get('http://127.0.0.1:5000/drop_TextRepeat/', data=content)
Traceback (most recent call last):

  File "<ipython-input-90-279b4d1640a1>", line 1, in <module>
    r = requests.get('http://127.0.0.1:5000/drop_TextRepeat/', data=content)

  File "E:\anoconda\lib\site-packages\requests\api.py", line 70, in get
    return request('get', url, params=params, **kwargs)

  File "E:\anoconda\lib\site-packages\requests\api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)

  File "E:\anoconda\lib\site-packages\requests\sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)

  File "E:\anoconda\lib\site-packages\requests\sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)

  File "E:\anoconda\lib\site-packages\requests\adapters.py", line 423, in send
    timeout=timeout

  File "E:\anoconda\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 594, in urlopen
    chunked=chunked)

  File "E:\anoconda\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 361, in _make_request
    conn.request(method, url, **httplib_request_kw)

  File "E:\anoconda\lib\http\client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)

  File "E:\anoconda\lib\http\client.py", line 1284, in _send_request
    body = _encode(body, 'body')

  File "E:\anoconda\lib\http\client.py", line 161, in _encode
    (name.title(), data[err.start:err.end], name)) from None

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 10-21: Body ('禁限行令讓二手車更難出手') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.

接收數(shù)據(jù)的代碼如下

@app.route('/drop_TextRepeat/', methods=['POST'])
def add_task():
    
    time_start=time.time()
    nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    pastTime = (datetime.datetime.now()-datetime.timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
    #print (nowTime)
    #url = request.form.get('siteDomain')
    #publishdate = request.form.get('publishdate').strftime('%Y-%m-%d %H:%M:%S')
    #text = request.form.get('content')
    #title = request.form.get('title')
    
    #url = request.json['data']
    #print (request.form)
    #print (request.data)
    data = request.data
    data1 = json.dumps(data)
    print (data1['data'])

請大佬指導(dǎo)一二

回答
編輯回答
萢萢糖

報錯是編碼錯誤

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 10-21: Body ('禁限行令讓二手車更難出手') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.

按提示 改成這樣試試

json.dumps(data).encode('utf-8')
2018年7月24日 19:23
編輯回答
大濕胸

r = requests.get('http://127.0.0.1:5000/drop_TextRepeat/', data=content.encode('utf8'))

2018年7月1日 09:57
編輯回答
厭遇

將編碼格式改為utf-8試試

2018年1月26日 19:26