使用python cgi读取JSON数据

时间:2014-05-07 20:51:24

标签: android python json cgi

出于某种原因,我找到了如何在我的cgi脚本中读取json数据。

我正在通过像这样的Android应用程序发送json:

    DefaultHttpClient httpClient = new DefaultHttpClient();
    ResponseHandler<String> resonseHandler = new BasicResponseHandler();
    HttpPost postMethod = new HttpPost(serverUrl + "/cgi-bin/save.py");

    JSONObject json = new JSONObject();
    try {
        SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
        String time = sdf.format(camera.getRecordTime().getTime());

        json.put("md", camera.isMdOn());
        json.put("threshold", camera.getThreshold());
        json.put("recordTime", time);

        postMethod.setHeader("Content-Type", "application/json");
        postMethod.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));
        String response = httpClient.execute(postMethod, resonseHandler);

        Log.e("response :", response);
    } catch (JSONException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

我的脚本是:

#!C:\Python27\python.exe

import cgi, sys, json

#data = cgi.FieldStorage()
#data = sys.stdin.read()


print "Content-type: application/json"
print 
response={'result': data['md']}
print(json.JSONEncoder().encode(response))

你可以看到我尝试了几种方法(cgi.FieldStorage()sys.stdin.read()) 但没有任何作用,我收到500错误。我能够从脚本发回数据,但不能读取发送到脚本的数据。

我知道我可以使用框架,但我不想这样做,所以请不要将我推荐给任何一个框架。

0 个答案:

没有答案