Body中的HTTP请求POST JSON对象

时间:2015-10-18 21:39:52

标签: android json post httprequest github-api

嘿伙计们,我在Java / Android中使用HTTP请求。我想创建一个新的Github问题。所以我查了一遍,几乎所有人都这样做了,但我有AndroidStudio告诉我的问题,所有类(HttpClient, HttpPost, ResponseHandler)都不存在,我做了什么错了或为什么我没有?

private class GithubPostIssues extends AsyncTask<String, Void, String> {

    private View view;

    public GithubPostIssues(View view) {
        this.view = view;
    }

    @Override
    protected void onPostExecute(String result) {
        Toast.makeText(FeedbackActivity.this, "Feedback/Hilfe gesendet", Toast.LENGTH_SHORT).show();
        finish();
    }

    @Override
    protected String doInBackground(String... params) {
        return addIssue(view);
    }

    private String addIssue(View view) {

        //here I'm getting some values from the user input and pass them in to the execute method

        return execute(title, body, bug, help, question, feature, enhancement, design);
    }

    private String execute (String title, String body, boolean bug,
                            boolean help, boolean question, boolean feature,
                            boolean enhancement, boolean design) {
        //Building the JSONOBject to pass in to the Request Body
        JSONObject issue = new JSONObject();
        JSONArray labels = new JSONArray();
        try {
            issue.put("title", title);
            issue.put("body", body);
            labels.put("0 - Backlog");
            if (bug) {
                labels.put("bug");
            }
            if (help) {
                labels.put("help");
            }
            if (question) {
                labels.put("question");
            }
            if (feature) {
                labels.put("feature");
            }
            if (enhancement) {
                labels.put("enhancement");
            }
            if (design) {
                labels.put("design");
            }
            issue.put("labels", labels);

            return makeRequest("http://requestb.in/uwwzlwuw", issue);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    private String makeRequest (String uri, JSONObject issue) {
        //all these clases aren't found by Android Studio
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(uri);

        httpPost.setEntity(new StringEntity(issue));
        httpPost.setHeader("Accept", "application/json");
        httpPost.setHeader("Content-type", "application/json");
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        return httpClient.execute(httpPost, responseHandler);
    }
}

1 个答案:

答案 0 :(得分:0)

尝试在gradle中添加:

android {
useLibrary 'org.apache.http.legacy'