Как отправить данные на сервер с помощью Android методом HTTP пост? - PullRequest
0 голосов
/ 14 марта 2012

Я пытаюсь отправить данные с телефона на свой сервер, используя почтовый метод

сервер: написано в JSP база данных: JDO

код для http post, jsp файла и java кода, как показано

   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button sig = (Button)findViewById(R.id.button1);
     sig.setOnClickListener(this);
    tv = (TextView)findViewById(R.id.textView1);
}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
     HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://egencies.appspot.com");

        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
            nameValuePairs.add(new BasicNameValuePair("Rid", "00-22-68-E8-EC-F1"));
            nameValuePairs.add(new BasicNameValuePair("location", "bangalore"));
            nameValuePairs.add(new BasicNameValuePair("content", "hello frm android"));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = httpclient.execute(httppost);
            tv.setText(response.toString());

        } catch (ClientProtocolException e) {
        } catch (IOException e) {
        }

JSP-файл Форма тега:

<form action="/sign" method="get">
<div><input type="text" name="Rid" /></div>
<div><input type="text" name="location" /></div>
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Post Greeting" /></div>
<input type="hidden" name="guestbookName" value="<%= guestbookName %>"/>
</form>

Java-код для JDO:

String guestbookName = req.getParameter("guestbookName");
Key guestbookKey = KeyFactory.createKey("Guestbook", guestbookName);
String content = req.getParameter("content");
String Rid = req.getParameter("Rid");
String location = req.getParameter("location");
Date date = new Date();
Entity greeting = new Entity("Greeting", guestbookKey);
greeting.setProperty("user", user);
greeting.setProperty("date", date);
greeting.setProperty("content", content);
greeting.setProperty("Rid", Rid);
greeting.setProperty("location", location);
DatastoreService datastore =
DatastoreServiceFactory.getDatastoreService();
datastore.put(greeting);

resp.sendRedirect("/guestbook.jsp?guestbookName="
             + guestbookName);"

при отправке сообщения я получаю сообщение: org.apache.http.message.BasicHttpResponse@44f94aa0 но ничего не хранится в базе данных. кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 14 марта 2012

Форма сама по себе работает нормально?Форма использует GET, а не POST, и я предполагаю, что ваш Java-код для JDO смотрит на данные GET, а не POST.Поэтому измените форму и код Java для JDO, чтобы использовать POST, или измените код Android, чтобы использовать GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...