2017-10-05 3 views
0

URL에 게시물 요청을 보내려면 아래 코드를 작성했습니다. 코드를 실행하면 500 개의 오류 코드가 표시됩니다. 그러나, 아래의 헤더를 사용하여 SOAP UI에서 동일한 URL을 시도했을 때 응답이 반환되었습니다. 내 코드에서 무엇이 잘못되었는지 알 수 있습니까? 미리 감사드립니다. 헤더를 제대로 추가하지 않았는지 의심 스럽습니다.HTTP 게시물 요청이 실패했습니다.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:arm="http://siebel.com/Webservice"> 
     <soapenv:Header> 
       <UsernameToken xmlns="http://siebel.com/webservices">username</UsernameToken> 
       <PasswordText xmlns="http://siebel.com/webservices">password</PasswordText> 
       <SessionType xmlns="http://siebel.com/webservices">Stateless</SessionType> 
      </soapenv:Header> 
      <soapenv:Body> 
      <arm:QueryList_Input> 
       <arm:SRNum></arm:SRNum> 
      </arm:QueryList_Input> 
      </soapenv:Body> 
     </soapenv:Envelope> 

아래 코드는 제 코드입니다.

 package com.siebel.Webservice; 

    import java.io.BufferedReader; 
    import java.io.DataOutputStream; 
    import java.io.InputStreamReader; 
    import java.net.HttpURLConnection; 
    import java.net.URL; 

    import javax.net.ssl.HttpsURLConnection; 

    public class HttpQueryList { 
     private final String USER_AGENT = "Mozilla/5.0"; 

     public static void main(String[] args) throws Exception { 

      HttpQueryList http = new HttpQueryList(); 



      System.out.println("\nTesting 2 - Send Http POST request"); 
      http.sendPost(); 

     } 



     // HTTP POST request 
     private void sendPost() throws Exception { 

      String url = "https://mywebsite.org/start.swe"; 
      URL obj = new URL(url); 
      HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); 

      //add reuqest header 
      con.setRequestMethod("POST"); 
      con.setRequestProperty("UsernameToken", "username"); 
      con.setRequestProperty("PasswordText", "password"); 

      String urlParameters = "SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1"; 

      // Send post request 
      con.setDoOutput(true); 
      DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
      wr.writeBytes(urlParameters); 
      wr.flush(); 
      wr.close(); 

      int responseCode = con.getResponseCode(); 
      System.out.println("\nSending 'POST' request to URL : " + url); 
      System.out.println("Post parameters : " + urlParameters); 
      System.out.println("Response Code : " + responseCode); 

      BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream())); 
      String inputLine; 
      StringBuffer response = new StringBuffer(); 

      while ((inputLine = in.readLine()) != null) { 
       response.append(inputLine); 
      } 
      in.close(); 

      //print result 
      System.out.println(response.toString()); 

     } 

    } 
+0

체크 아웃 : https://stackoverflow.com/questions/14522931/how-to-add-header-to-soap-request –

답변

1

XML에서 토큰을 지정하고 있습니다. SOAP UI를 사용하여이 작업을 수행하면 내가 사용하는 인증서 파일이 있습니다. 제 경우에는 C : \ Program Files (x86) \ SmartBear \ SoapUI-5.2.1 \ bin 폴더에 저장했습니다. 그런 다음 이것을 사용하도록 SOAP UI를 구성했습니다. 인증서가 있습니까? 예라고 대답하셨습니까?

+0

인증서가 없습니다. – James

관련 문제