2016-07-13 9 views
1

ich gelesen habe und verstand den folgenden Code aus dieser Web-Seite als Referenz meine Android-Anwendung zu entwickeln: https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/PostForm.javaOKHTTP3 POST FORM Android-Anwendung nicht, etwas zu Google schreiben Forms

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; 

} 

Was bin ich falsch machen? Die Android-Anwendung scheint Daten erfolgreich zu übermitteln, aber wenn ich das Google Formular überprüfe, werden keine Daten eingegeben? ... Bitte helfen Sie!

Antwort

1

I RequestBody wurde mit als ich FormBody verwendet hätte sein sollen ...

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

Whoops! Jetzt funktioniert das Programm lol