Eminim bu sorunun cevabı acı verici derecede bariz bir karakter kodlama sorunu olacaktır ...
Bir python uygulamasında bazı uç noktaları test etmek için komut satırında curl kullanıyorum. Uç nokta, enlem ve boylam url parametrelerini alır. Çok özel bir şey yok. Komutu verdim:
curl -v -L http://localhost:5000/pulse/?lat=41.225&lon=-73.1
Sunucu, ayrıntılı curl çıktısıyla yanıt verir:
* 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
Bu dökümün ikinci satırında, ikinci parametrenin lon
gönderilmediği açıktır . Neyi yanlış yapıyorum? Teşekkürler.