OKHTTP3 POST FORM安卓应用程序不会向Google Forms发布任何内容

时间:2016-07-13 03:11:10

标签: java android google-form okhttp3

我已阅读并理解此网页中的以下代码作为开发我的Android应用程序的参考: https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/PostForm.java

public class PostForm extends AsyncTask<String, Void, String>
{
     public static final MediaType FORM_DATA_TYPE = MediaType.parse("application/text; charset=utf-8");

     String URL = "https://docs.google.com/forms/d/e/FILLERFORMTESTINGNOTREAL";
     String USER_NAME = "entry.XXXXXXXXX"; //FAKE ENTRY
     String PASSWORD = "entry.XXXXXXXXX"; //FAKE ENTRY

@Override
public String doInBackground(String... params)
{
    String username = params[0];
    String password = params[1];

    try
    {
        OkHttpClient client = new OkHttpClient();

        String post_data = USER_NAME + "=" + URLEncoder.encode(username, "UTF-8") +
                "&" + PASSWORD + "=" + URLEncoder.encode(password, "UTF-8");

        RequestBody requestBody = RequestBody.create(FORM_DATA_TYPE, post_data);

        Request request = new Request.Builder()
                .url(URL)
                .post(requestBody)
                .build();

        client.newCall(request).execute();

    }
    catch (IOException e)
    {
        e.printStackTrace();
    }

    return null;

}

我做错了什么? Android应用程序似乎成功提交数据,但是当我检查Google表单时,没有输入数据?... 请帮忙!

1 个答案:

答案 0 :(得分:2)

当我应该使用FormBody时,我正在使用RequestBody ...

            FormBody formBody = new FormBody.Builder()
                .add(USERNAME, usr)
                .add(PASSWORD, pwd)
                .build();

糟糕!现在该程序工作lol