【问题标题】:Sending data to server URL thru JSON [duplicate]通过 JSON 将数据发送到服务器 URL [重复]
【发布时间】:2018-03-27 11:42:45
【问题描述】:

嗨,我是 AsyncTask 的新手,我需要将数据发送到 API 服务器。我正在连接,我被困在这里。我阅读了有关 AsyncTask 的信息,这是我见过的代码。首先是如果我确定设备是否已连接,它将在给定的 URL 上发送数据,否则。它将通过短信发送

public class SendData extends AsyncTask <String, Void, Boolean> {
    DateFormat dateFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss");
    Date date = new Date();
    String datefinal = dateFormat.format(date).toString();
    String url = "http://192.168.1.212/mobile_alerts_api.php?location=&msg=&datetime=&id=";


    @Override
    protected Boolean doInBackground(String... urls) {
        try{
            HttpGet httppost = new HttpGet(url);
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(httppost);

            // StatusLine stat = response.getStatusLine();
            int status = response.getStatusLine().getStatusCode();

            if (status == 200) {
                HttpEntity entity = response.getEntity();
                String data = EntityUtils.toString(entity);

                JSONObject jsono = new JSONObject(data);
                return true;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {

            e.printStackTrace();
        }
        return false;
    }
    protected void onPostExecute(Boolean result) {

    }
}

【问题讨论】:

  • 我想你还没有听说过 Retrofit 或 Volley,是吗?
  • 无论如何,如果你想使用 POST,我认为 HttpGet 不是正确的类
  • @cricket_007 是的,我从没听说过 atm
  • 可能需要阅读一下文档。 developer.android.com/training/volley/index.html 你正在寻找 JsonObjectRequest
  • @cricket_007 好的,谢谢

标签: java android android-asynctask


【解决方案1】:

用途:

HttpPost httppost = new HttpPost(url);

而不是

HttpGet httppost = new HttpGet(url);

Get 用于从服务器获取数据。 Post用于向服务器发送数据

【讨论】:

  • 嗨,感谢您的建议,我需要将数据从 android 应用程序发送到 URL 服务器。
  • 嗨,谢谢你
  • 由于冲突,我无法实施,但感谢您的建议。非常感谢
  • 这不显示任何 JSON
【解决方案2】:
        String json=yourJsonData;
     StringEntity se = new StringEntity(json);
httpPost.setEntity(se);
httpPost.setHeader("Content-type", "application/json");

然后在你的异步任务类中执行 httppost

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2013-11-04
    • 1970-01-01
    • 2014-11-20
    相关资源
    最近更新 更多