1

データをフェッチするために使用したい API があります。データをフェッチするには、リクエストを XML 形式で送信する必要があり、レスポンスは XML で送信されます。Javaを使用してリクエストを送信する方法と、Javaでレスポンスをデコードする方法の例はありますか?

4

2 に答える 2

2

さて、私はあなたが望んでいたものを手に入れました...しかし、次のAPIを使用するようお願いします...

  • JAXPJAXB
  • Castor

-以下のコード スニペット メソッドはurl、Web サーバーの とxmlQuery

-を使用しNameValuePairて XML リクエストを送信しました

-をクライアントに置き換えてください。これを使用しましたが、このサイトにアクセスするにはカスタム証明書が必要です。MySSLSocketFactory.getNewHttpClient();Http

これは、XML req を送信し、XML resp を取得するプロジェクトのコードです。

public String postData(String url, String xmlQuery) {

        final String urlStr = url;
        final String xmlStr = xmlQuery;
        final StringBuilder sb = new StringBuilder();

        Thread t1 = new Thread(new Runnable() {

            public void run() {

                HttpClient httpclient = MySSLSocketFactory.getNewHttpClient();

                HttpPost httppost = new HttpPost(urlStr);

                try {

                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
                            1);
                    nameValuePairs.add(new BasicNameValuePair("xml", xmlStr));

                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse response = httpclient.execute(httppost);

                    Log.d("Vivek", response.toString());

                    HttpEntity entity = response.getEntity();
                    InputStream i = entity.getContent();

                    Log.d("Vivek", i.toString());
                    InputStreamReader isr = new InputStreamReader(i);

                    BufferedReader br = new BufferedReader(isr);

                    String s = null;

                    while ((s = br.readLine()) != null) {

                        Log.d("YumZing", s);
                        sb.append(s);
                    }

                    Log.d("Check Now", sb + "");

                } catch (ClientProtocolException e) {

                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } 
            }

        });

        t1.start();
        try {
            t1.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        System.out.println("Getting from Post Data Method " + sb.toString());

        return sb.toString();
    }
于 2012-10-01T17:28:35.333 に答える
0

次の議論を見てください。JavaでHTTPリクエストを送信する方法は? xml での応答の場合、mime-type が application/xml に設定されていることを確認してください。これがあなたの質問に答えることを願っています。

于 2012-10-01T17:20:24.590 に答える