Delphi Rest Request返回Bad请求

时间:2016-01-28 13:37:00

标签: rest delphi request

我有一个调用python rest服务的delphi程序。

python rest服务看起来像:

@app.route('/flagger/api/v1.0/stem', methods=['GET'])
def stem_request():
    print request.json
    if not request.json or u'text' not in request.json:
        bad_request('no "text" field given')
    text = request.json['text']
    return jsonify(stemmed=stem(text)), 200

当我对该服务进行卷曲请求时,我得到答案:

C:\Program Files\Curl>curl -i -H "Content-Type: application/json" -X GET -d "{\"text\":\"hij geeft mij appels\"}" h
    ttp://192.168.99.100:5000/flagger/api/v1.0/stem
    HTTP/1.0 200 OK
    Content-Type: application/json
    Content-Length: 30
    Server: Werkzeug/0.11.3 Python/2.7.10
    Date: Thu, 28 Jan 2016 13:17:36 GMT

    {
      "stemmed": "geeft appel"
    }

在我的delphi XE7 / Pro程序中,我有 Restclient,Restrequest Restresponse 组件。

所有组件都有contentype = application / json

restrequest.method = rmGet

到Restrequest我添加了一个参数:

contenttype=ctapplication_json
kind=pkrequestbody 
name=text 
value=hij geeft mij appels.

使用以下代码启动请求:

MemoContent.Lines.Add('Start...');
RESTClient1.BaseURL:='http://192.168.99.100:5000/flagger/api/v1.0/stem';
MemoContent.Lines.Add('Request Params.Name= '+RESTRequest1.Params.Items[0].Name);
  MemoContent.Lines.Add('Request Params.Value= '+RESTRequest1.Params.Items[0].Value);
  RESTRequest1.Execute;
  MemoContent.Lines.Add('Status= '+RESTResponse1.StatusText);
  MemoContent.Lines.Add('Content= '+RESTResponse1.content);
  MemoContent.Lines.Add('FullRequestURI= '+RESTResponse1.FullRequestURI);
  MemoContent.Lines.Add('BaseURL= '+RESTClient1.BaseURL);
  jValue:=RESTResponse1.JSONValue;
  MemoContent.Lines.Add('Response Json= '+jValue.tostring);
  MemoContent.Lines.Add('Statustext= '+RESTResponse1.StatusText);

请求已执行,但我总是收到错误的请求答案:

Start...
Request Params.Name= text
Request Params.Value= dit is een test
Status= HTTP/1.0 400 BAD REQUEST
Content= {
  "error": "bad request"
}
FullRequestURI= http://192.168.99.100:5000/flagger/api/v1.0/stem
BaseURL= http://192.168.99.100:5000/flagger/api/v1.0/stem
Response Json= {"error":"bad request"}
Statustext= HTTP/1.0 400 BAD REQUEST

任何人都知道这里有什么问题?

我无法使用其余的调试器,但它可以与CURL和其他其他客户端一起使用

感谢。

0 个答案:

没有答案