-1

私はAndroidの世界とモバイルアプリケーションのサーバー側プログラミングの新人です。私は問題を抱えています:- Android モバイルから url の形式でリクエストを送信すると、サーバー (Apache tomcat) はそのリクエストに関する応答を見つけられませんでした。

クライアント側(Android Mobile)で次のコードを書いています:-

public static void requestForDepartment()
{
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    String iName = null;
    String iprice = null;
    String idPrice = null;
    nameValuePairs.add(new BasicNameValuePair("storeId","s0001"));

    try {
        System.out.println("inside server try 1");
        // start - line is for sever connection/communication
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new
          HttpPost("http://192.168.1.3:8080/xybuy/rest/webservices/requestDepatment");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        // end - line is for sever connection/communication
        InputStream is = entity.getContent();
    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection "
                + e.toString());
    }
}

192.168.1.3:8080 が私のエンドポイントです。これはサーバー側の私の web.xml ファイルです

        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"    version="2.5">
  <display-name>FirstProject</display-name>
  <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>index2.jsp</welcome-file>
  </welcome-file-list>
 <servlet>
 <servlet-name>ServletAdaptor</servlet-name>
 <servlet-class>
        com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-  class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/REST/*</url-pattern>
</servlet-mapping>

実際のペイロードは、JSON または XML にすることができます。サーバーは安らかなWebサービスです。

4

2 に答える 2

0

@Eugeneは正しいですが、あなたの質問は完全に不明確です。あなたはそのxmlとjsonを言います。どうしてそれができるのでしょうか?そのxmlの場合、content-typeとして「application / xml」が必要です。そのjsonの場合、content-type = "application/json"です。

于 2013-01-07T12:42:51.320 に答える
0

1) リクエストにヘッダーを追加してみてください。

httppost.setHeader("Content-Type", "application/x-www-form-urlencoded");

Java はデフォルトでいくつかのヘッダーを追加しますが、それだけでは不十分な場合があります。

2) ローカル PC から Java プロジェクトでこのコードを実行すると機能しますか?

于 2013-01-07T11:17:43.157 に答える