Впервые задаю вопрос здесь.Обычно я могу найти свой ответ без необходимости спрашивать, но на этот раз я застрял и не могу понять, что мне не хватает.
Я просто пытаюсь, чтобы мое приложение для Android заполнило формуна веб-сайте и представить его.Мне не нужно приложение, чтобы делать что-либо с отправкой каких-либо данных, просто заполните форму и отправьте ее.В основном я пытаюсь собрать результаты голосования приложения.Я думал, что отправка формы будет простой, поэтому я создал таблицу Google и из нее сделал форму.Я решил указать приложению Android на форму, и тогда у меня будут все данные в электронной таблице для последующего просмотра.Я не могу заставить приложение Android фактически заполнить форму.Вот ресурсы.
Форма
Электронная таблица
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);
}
}
Я опубликовал и форму, и электронную таблицу, так что чувствуюсвободно возиться с ним и попытаться заставить его работать самостоятельно.
Я не получаю ни ошибок от моей программы, ни ошибок компиляции, ни ошибок в DDMS.Когда я на самом деле запускаю программу и нажимаю кнопку, которая выполняет этот код, я вижу задержку, так как сейчас она находится в потоке пользовательского интерфейса, поэтому я знаю, что она выполняется.Похоже, что все работает отлично, но моя таблица не обновляется совсем.
Есть мысли?Я уверен, что это что-то глупое, что я упускаю, но любая помощь будет признательна.
Вот обновленный код с большим количеством журналирования и отладки.
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);
}
}
Я использую ReadingView.class для чего-то еще в моем приложении, но похитил его для этой цели ведения журнала прямо сейчас.Он имеет только метод onCreate (), который приведен ниже.
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");
}
Также стоит отметить, что в DDMS он регистрирует только один вывод строки.Я считаю, что это только потому, что HTML-код возвращается все в одну строку.Поправь меня, если я ошибаюсь.