Utilisation d'Android pour envoyer un formulaire de feuille de calcul Google

Première fois de poser une question ici. Habituellement je peux trouver ma réponse sans avoir à le demander, mais cette fois, je suis coincé et ne peut pas comprendre ce que je suis absent.

J'essaie juste d'avoir mon application Android de remplir un formulaire sur un site web et de le soumettre. Je n'ai pas besoin de l'application pour faire n'importe quoi avec les données envoyées en arrière, il suffit de remplir le formulaire et de le soumettre. Fondamentalement, je suis en train de collecter les résultats d'un vote de l'app. Je pensais que la soumission d'un formulaire serait simple donc j'ai créé une feuille de calcul Google et fait une forme. Je pensais que je n'avais point l'application Android pour la forme et puis j'aurais toutes les données dans la feuille de calcul pour les visionner plus tard. Je ne peux pas obtenir l'application Android pour remplir le formulaire. Voici les ressources.

Formulaire

Tableur

private void submitVote(String outcome) {
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("https://spreadsheets.google.com/spreadsheet/formResponse?hl=en_US&formkey=dDlwZzh4bGFvNFBxUmRsR0d2VTVhYnc6MQ&ifq");

    List<BasicNameValuePair> results = new ArrayList<BasicNameValuePair>();
    results.add(new BasicNameValuePair("entry.0.single", cardOneURL));
    results.add(new BasicNameValuePair("entry.1.single", outcome));
    results.add(new BasicNameValuePair("entry.2.single", cardTwoURL));

    try {
        post.setEntity(new UrlEncodedFormEntity(results));
    } catch (UnsupportedEncodingException e) {
        //Auto-generated catch block
        Log.e("YOUR_TAG", "An error has occurred", e);
    }
    try {
        client.execute(post);
    } catch (ClientProtocolException e) {
        //Auto-generated catch block
        Log.e("YOUR_TAG", "An error has occurred", e);
    } catch (IOException e) {
        //Auto-generated catch block
        Log.e("YOUR_TAG", "An error has occurred", e);
    }
}

J'ai fait à la fois la forme et de la feuille de calcul public, alors n'hésitez pas déconner avec elle et essayer et obtenir de travailler vous-même.

Je n'ai pas les erreurs de mon programme, pas d'erreurs de compilation, pas d'erreurs dans DDMS. Lorsque j'ai fait exécutez le programme et cliquez sur le bouton qui exécute ce code, je peux voir le retard car c'est dans le thread de l'INTERFACE utilisateur, donc je sais que c'est l'exécution. Il semble comme si tout fonctionne parfaitement, mais ma feuille de calcul n'est pas mise à jour.

Toute pensée? Je suis sûr que c'est quelque chose de stupide que je suis absent, mais toute aide serait appréciée.

Voici le code mis à jour avec beaucoup de journalisation de débogage et de trucs.

private void submitVote(String outcome) {
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("https://spreadsheets.google.com/spreadsheet/formResponse?hl=en_US&amp;formkey=dDlwZzh4bGFvNFBxUmRsR0d2VTVhYnc6MQ&amp;ifq");

    List<BasicNameValuePair> results = new ArrayList<BasicNameValuePair>();
    results.add(new BasicNameValuePair("entry.0.single", cardOneURL));
    results.add(new BasicNameValuePair("entry.1.single", outcome));
    results.add(new BasicNameValuePair("entry.2.single", cardTwoURL));

    try {
        post.setEntity(new UrlEncodedFormEntity(results));
    } catch (UnsupportedEncodingException e) {
        //Auto-generated catch block
        Log.e("YOUR_TAG", "An error has occurred", e);
    }
    try {
        HttpResponse httpResponse = client.execute(post);
        Log.e("RESPONSE", "info: " + httpResponse);

        BufferedReader rd = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
        String line;
        while ((line = rd.readLine()) != null) {
        Log.i("words", line);   
        }

        Intent intent = new Intent(this, ReadingView.class);
        intent.putExtra("html", line);
        startActivity(intent);
    } catch (ClientProtocolException e) {
        //Auto-generated catch block
        Log.e("YOUR_TAG", "client protocol exception", e);
    } catch (IOException e) {
        //Auto-generated catch block
        Log.e("YOUR_TAG", "io exception", e);
    }
}

- Je utiliser ReadingView.class pour quelque chose d'autre dans mon application, mais détourné de cette journalisation but maintenant. Il n'a qu'une onCreate() la méthode, qui est ci-dessous.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.readingview);

    WebView mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    //mWebView.loadUrl(getIntent().getExtras().getString("url"));
    mWebView.loadData(getIntent().getExtras().getString("html"), "text/html", "utf-8");
}

Également intéressant de noter que dans le DDMS il enregistre uniquement une sortie de ligne. Je crois que c'est tout simplement parce que le code html est retourné tous comme une seule ligne. Corrigez-moi si je me trompe.

source d'informationauteur doeiqts