JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java & XML、Web Service » Web Services  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 JAVA呼叫webService 傳遞參數及回傳值問題請教
ttnezpwinf





發文: 21
積分: 0
於 2017-11-28 03:56 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
各位大大,大家好:
因為工作需求,第一次寫java call webService 不太熟悉。
需求是這樣子的:
1. 呼叫url,並傳入兩個參數para1、para2
2. 會有回傳值,為JSON格式的文字字串
呼叫範例如下:
URL : http://192.168.0.100/QueryDB/Default.aspx?para1=1¶2=123456789

要詢問的問題有兩點:
(1) 傳入兩個參數的寫法是否正確?
(2) 接收回傳值的程式碼,應該如何撰寫?

我寫的java code如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
 
public class WebService {
 
  public static void main(String args[]) {
      URL url;
      HttpURLConnection conn = null;
      try {
           url = new URL("http://192.168.0.100/QueryDB/Default.aspx");
           conn = (HttpURLConnection) url.openConnection();
           conn.setDoOutput(true);
           conn.setRequestMethod("GET");
           conn.setDoInput(true);
           conn.setDoOutput(true);
           conn.setRequestProperty("Content-Type", "text/html");
           conn.setRequestProperty("charset", "UTF-8");
           OutputStream os = conn.getOutputStream();
           List<NameValuePair> params = new ArrayList<NameValuePair>();
           params.add(new BasicNameValuePair("para1","1"));
           params.add(new BasicNameValuePair("para2","121729589"));
           os.write(getQuery(params).getBytes("UTF-8"));
           os.flush();
           os.close();
           conn.getResponseCode();
      } catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      } finally {
          if (conn != null) {
              conn.disconnect();
          }
      }
  }
 
  public static String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException {
      StringBuilder result = new StringBuilder();
      boolean first = true;
 
      for (NameValuePair pair : params) {
          if (first){
              first = false;
          }else{
              result.append("&");
          }
          result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
          result.append("=");
          result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
      }
      return result.toString();
  }
}


以上還請各位有寫過call web Service的前輩們指導,謝謝。


ttnezpwinf edited on 2017-11-28 03:59
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
2345 JAVA呼叫webService 傳遞參數及回傳值問題請教 ttnezpwinf 2361 2017-11-28 03:56
2278 Re:JAVA呼叫webService 傳遞參數及回傳值問題請教 LiaoLuke 2705 2017-11-28 05:28
» JWorld@TW »  Java & XML、Web Service » Web Services

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8