Primera vez que hace una pregunta aquí. Por lo general, puedo encontrar mi respuesta sin tener que preguntar, pero esta vez estoy atascado y no puedo entender lo que me estoy perdiendo.Usando Android para enviar a un Formulario de hoja de cálculo de Google
Solo intento que mi aplicación de Android complete un formulario en un sitio web y lo envíe. No necesito que la aplicación haga nada con los datos que se envían, solo complete el formulario y envíelo. Básicamente, estoy tratando de recopilar los resultados de una aplicación de votación. Pensé que la presentación del formulario sería simple, así que creé una hoja de cálculo de Google e hice un formulario con ella. Pensé que apuntaría la aplicación de Android al formulario y luego tendría todos los datos en la hoja de cálculo para verlos más tarde. Sin embargo, no puedo conseguir que la aplicación de Android llene el formulario. Aquí están los recursos.
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);
}
}
hice tanto la forma como el público en hoja de cálculo para sentirse libres para perder el tiempo con él y tratar de conseguir que funcione a ti mismo.
No recibo ningún error de mi programa, no hay errores de compilación, no hay errores en DDMS. Cuando realmente ejecuto el programa y hago clic en el botón que ejecuta este código, puedo ver el retraso ya que ahora está en el hilo de UI, así que sé que lo está ejecutando. Parece que todo está funcionando perfectamente, pero mi hoja de cálculo no se actualiza en absoluto.
¿Alguna idea? Estoy seguro de que es algo estúpido que me estoy perdiendo, pero cualquier ayuda sería apreciada.
Aquí está el código actualizado con muchas cosas de registro y depuración.
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 {
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);
}
}
utilizo ReadingView.class para otra cosa en mi aplicación, pero secuestrado para este propósito tala en este momento. Solo tiene un método onCreate(), que se encuentra debajo.
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");
}
También vale la pena señalar que en el DDMS solo registra una salida de línea. Creo que esto es solo porque el código html se devuelve todo como una sola línea. Corrígeme si estoy equivocado.
Esto es un gran artículo que podría ser útil para usted. http://www.morningcopy.com.au/tutorials/how-to-style-google-forms/ – JackyBoi