2012-07-02 46 views
5

Tôi đang sử dụng lệnh GET REST trong java bằng mã đã cho, nhưng tôi nhận được mã lỗi: 404 là Không tìm thấy. Nhưng khi tôi đang sử dụng cùng một URL trong trình duyệt, tôi nhận được kết quả đầu ra và nó hoạt động tốt. Tôi mới sử dụng JAVA. Có thể tôi đang chuyển các tham số truy vấn sai, nhưng tôi không nhận được nó. Tôi đang làm việc trong NETBEANS 7.1.2. Hãy giúp tôi.cách chuyển tham số truy vấn bằng java với ứng dụng khách Http

import java.io.IOException; 
    import java.io.OutputStreamWriter; 
    import java.net.HttpURLConnection; 
    import java.net.URL; 
     public class Test { 
      private static String ENDPOINT ="http://wisekar.iitd.ernet.in/active/api_resources.php/method/mynode?"; 
      public static void main(String[] args) throws IOException 
      { 
       URL url = new URL(ENDPOINT + "key=" + "mykey" ); 
       HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
       httpCon.setDoOutput(true); 
       httpCon.setRequestMethod("GET"); 
      OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream()); 
      System.out.println(httpCon.getResponseCode()); 
      System.out.println(httpCon.getResponseMessage()); 
      out.close(); 
      } 
    } 

đây mykey là chìa khóa được tôi cung cấp bởi trang web.

Tôi cũng muốn in thông báo phản hồi trên cửa sổ đầu ra hoặc bảng điều khiển. Như tôi muốn lưu trữ nó trong tương lai cho một số khai thác. Vui lòng trợ giúp.

Trả lời

5

Đây là mã của bạn .. Sử dụng mã đó. Nó đưa ra phản hồi như 401-Unauthorised với tôi và cùng một phản hồi tại URL trình duyệt, có thể nguyên nhân này của VPN là một số vấn đề khác. NẾU bạn sử dụng

private static String ENDPOINT ="http://google.com"; 

Nó sẽ cung cấp cho bạn 200-OK.

import java.io.IOException; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLEncoder; 

     public class Test { 
      private static String ENDPOINT ="http://wisekar.iitd.ernet.in/active/api_resources.php/method/mynode"; 
      public static void main(String[] args) throws IOException 
      { 
       String url = ENDPOINT; 
       String charset = "UTF-8"; 
       String param1 = "mykey"; 

       String query = String.format("key=%s", 
        URLEncoder.encode(param1, charset)); 
       java.net.URLConnection connection = new URL(url + "?" + query).openConnection(); 
       connection.setRequestProperty("Accept-Charset", charset); 
       if (connection instanceof HttpURLConnection) 
       { 
       HttpURLConnection httpConnection = (HttpURLConnection) connection; 
       System.out.println(httpConnection.getResponseCode()); 
       System.out.println(httpConnection.getResponseMessage()); 
       } 
       else 
       { 
       System.err.println ("error!"); 
       } 
      } 
    } 
+0

Xin chào, tôi đã đọc về các dịch vụ web (đăng và nhận) và có một số kiến ​​thức tốt về nó. Và tôi đã sử dụng công cụ soapUI để thực hiện cuộc gọi dịch vụ GET, đó là công việc khá dễ dàng. SInce nó là một công cụ nó hoạt động tốt mà không cần viết quá nhiều mã. nhìn trên mã Tôi nghĩ rằng tôi có thể sử dụng HTTPClient và HTTPUrlconnection CLASSES và viết mã java để thay thế đầu vào khi cần thiết và thực hiện một số GET và POST cuộc gọi. Xin vui lòng cho tôi biết cho dù đó là điều tốt để làm gì nếu tôi không muốn sử dụng công cụ SOAPUI. – MKod

+0

có bạn có thể sử dụng nó .. Tất cả về tần suất cuộc gọi và tải dữ liệu. – manurajhada

+0

Cảm ơn bạn đã trả lời nhanh; bạn có thể vui lòng giải thích về tần suất cuộc gọi không? – MKod

Các vấn đề liên quan