烧瓶问题和错误的请求 [英] Problems with flask and bad request

查看:113
本文介绍了烧瓶问题和错误的请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为自己编程一个很好的api,以便使用json从游戏服务器到我的网站空间获取json数据,

I was programming myself a pretty nice api to get some json data from my gameserver to my webspace using json,

但是每次我使用angular发送请求时,我都会得到以下信息:127.0.0.1--[20/Mar/2018 17:07:33]代码400,消息错误的请求版本(▒\x9c▒▒{▒ '\ x12 \x99▒▒▒\ xadH \ x00 \ x00 \x14▒+▒/▒,▒0▒\x13▒\ x14 \ x00/\ x005 \ x00) 127.0.0.1--[2018年3月20日17:07:33]"/▒,▒0▒▒/5"HTTPStatus.BAD_REQUEST- 127.0.0.1--[2018年3月20日17:07:33]代码400,消息错误的请求语法('\ x16 \ x03 \ x01 \ x00 \ x01 \ x01 \ x00 \ x00 \ x9d \ x03 \x03▒k, &▒▒ua\ x8c \ x82 \ x17 \x05▒QwQ$▒0▒▒\x9f▒B1\ x98 \x19W▒▒▒▒\ x00 \ x00 \x14▒+▒/▒,▒0▒\x13▒ \ x14 \ x00/\ x005 \ x00') 127.0.0.1--[2018年3月20日17:07:33]"▒+▒/▒,▒0▒▒/5"HTTPStatus.BAD_REQUEST- 127.0.0.1--[2018年3月20日17:07:33]代码400,消息错误的请求语法('\ x16 \ x03 \ x01 \ x00 \ x01 \ x00 \x00▒\ x03 \ x03)▒▒\ x1e \xa0▒\ t \ r \ x14g%▒▒\x17▒▒\ x80 \ x8d}▒F▒▒\x08U▒ġ▒▒\x06▒\ x00 \ x00 \x1c▒+▒/▒,▒0▒ ') g%▒▒▒▒\ x80 \ x8d}▒F▒U▒ġ▒▒▒▒+▒/▒,▒0▒"HTTPStatus.BAD_REQUEST-

but everytime i am sending a request using angular i am getting this: 127.0.0.1 - - [20/Mar/2018 17:07:33] code 400, message Bad request version ("▒\x9c▒▒{▒'\x12\x99▒▒▒\xadH\x00\x00\x14▒+▒/▒,▒0▒\x13▒\x14\x00/\x005\x00") 127.0.0.1 - - [20/Mar/2018 17:07:33] "▒\x9dtTc▒\x93▒4▒M▒▒▒▒▒\x9c▒▒{▒'\x99▒▒▒▒H▒+▒/▒,▒0▒▒/5" HTTPStatus.BAD_REQUEST - 127.0.0.1 - - [20/Mar/2018 17:07:33] code 400, message Bad request syntax ('\x16\x03\x01\x00▒\x01\x00\x00\x9d\x03\x03▒k,&▒▒ua\x8c\x82\x17\x05▒QwQ$▒0▒▒\x9f▒B1\x98\x19W▒▒▒▒\x00\x00\x14▒+▒/▒,▒0▒\x13▒\x14\x00/\x005\x00') 127.0.0.1 - - [20/Mar/2018 17:07:33] "▒\x9d▒k,&▒▒ua\x8c\x82▒QwQ$▒0▒▒\x9f▒B1\x98W▒▒▒▒▒+▒/▒,▒0▒▒/5" HTTPStatus.BAD_REQUEST - 127.0.0.1 - - [20/Mar/2018 17:07:33] code 400, message Bad request syntax ('\x16\x03\x01\x00▒\x01\x00\x00▒\x03\x03)▒▒\x1e\xa0▒\t\r\x14g%▒▒\x17▒▒\x80\x8d}▒F▒▒\x08U▒ġ▒▒\x06▒\x00\x00\x1c▒+▒/▒,▒0▒') g%▒▒▒▒\x80\x8d}▒F▒U▒ġ▒▒▒▒+▒/▒,▒0▒" HTTPStatus.BAD_REQUEST -

我的api

from flask import Flask, jsonify
from flaskext.mysql import MySQL
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
cors = CORS(app, resources={r"/punishments": {"origins": "http://localhost:5000" "*"}})
mysql = MySQL()

# MySQL configurations
app.config['MYSQL_DATABASE_USER'] = 'test'
app.config['MYSQL_DATABASE_PASSWORD'] = 'Biologie1'
app.config['MYSQL_DATABASE_DB'] = 'test'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'

mysql.init_app(app)

@app.route('/punishments', methods=['GET'])
@cross_origin(origin='localhost:5000',headers=['Content- Type','Authorization'])
def get():
    cur = mysql.connect().cursor()
    cur.execute('''select * from test.punishments''')
    r = [dict((cur.description[i][0], value)
              for i, value in enumerate(row)) for row in cur.fetchall()]
    return jsonify({'punishments' : r})

if __name__ == '__main__':
    app.run()

我的客户端功能

export class ApiUserService {

  private _postsURL = "https://localhost:5000/punishments";

  constructor(private http: HttpClient) {
  }

  getPosts(): Observable<Punishments[]> {

    let headers = new HttpHeaders();
    headers = headers.set('Content-Type', 'application/json; charset=utf-8');

    return this.http
      .get(this._postsURL,{
        headers: {'Content-Type':'application/json; charset=utf-8'}
      })
      .map((response: Response) => {
        return <Punishments[]>response.json();
      })
      .catch(this.handleError);
  }

  private handleError(error: Response) {
    return Observable.throw(error.statusText);
  }
}

推荐答案

我遇到了与您相同的错误.

I had the same error as yours.

我的烧瓶服务器安装在respberry-pi内部,并且我试图使用https://ip:5000访问它.

My flask server was installed inside respberry-pi and I was trying to access it using https://ip:5000.

问题是我使用的是https而不是http.

The problem was I was using https instead of http.

当我将其更改为http://ip:5000时,它起作用了.

When I changed it to http://ip:5000, it worked.

这篇关于烧瓶问题和错误的请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆