Saya yakin jawaban untuk ini adalah masalah pengkodean karakter yang sangat jelas ...
Saya menggunakan curl pada baris perintah untuk menguji beberapa titik akhir di aplikasi python. Titik akhir mengambil parameter url lintang dan bujur. Tidak ada yang terlalu istimewa. Saya memasukkan perintah:
curl -v -L http://localhost:5000/pulse/?lat=41.225&lon=-73.1
Server merespons, dengan keluaran curl verbose:
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET /pulse/?lat=41.225 HTTP/1.1
> User-Agent: curl/7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: localhost:5000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 500 INTERNAL SERVER ERROR
< Content-Type: application/json
< Content-Length: 444
< Server: Werkzeug/0.8.1 Python/2.7.2+
< Date: Wed, 01 Feb 2012 17:06:29 GMT
<
{
"msg": "TypeError: float() argument must be a string or a number",
"flag": 0,
"stack": [
"Traceback (most recent call last):",
" File \"engine.py\", line 139, in dispatch_request",
" return getattr(self, 'action_'+endpoint)(request, **values)",
" File \"engine.py\", line 818, in action_getpulse",
" lon = float(request.args.get('lon'))"
],
"err": 1
* Closing connection #0
}
[1]+ Done
Pada baris kedua dari dump itu, jelas bahwa parameter kedua lon
,, tidak terkirim. Apa yang saya lakukan salah? Terima kasih.