2016-10-05 2 views
1

내가 피클의 비트에 갇혀있다에 헤더를 설정하지.HttpsURLConnection는이 addRequestProperty

코드 :

URL obj = new URL(url); 

    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(proxy); 

    //HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); 

    con.setDoInput(true); 
    con.setDoOutput(true); 

    //add reuqest header 
    con.setRequestMethod("POST"); 
    con.addRequestProperty("Accept-Language", "en-GB"); 
    con.addRequestProperty("X-ApiKey", "xxxx-xxx-xxx-xxx-xxx"); 
    con.addRequestProperty("Content-Type", "application/json"); 


    List<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 
    postParameters.add(new BasicNameValuePair("Password", "xxxxxxxxxxxxxx")); 
    postParameters.add(new BasicNameValuePair("Email", "[email protected]")); 

    OutputStream os = con.getOutputStream(); 
    BufferedWriter writer = new BufferedWriter(
      new OutputStreamWriter(os)); 
    writer.write(getQuery(postParameters)); 
    writer.flush(); 
    writer.close(); 
    os.close(); 

그들이 제대로 내 헤더 필드가 올바르게 설정되었는지 여부를 결정하기 위해

con.getHeaderField("X-ApiKey"); 
con.getHeaderFields(); 

을 추가 한 설정되고 테스트합니다. 이 나타나는 그러나 그들은하지 않았습니다. 이에 따라

응답 : 내가 제대로 헤더를 설정하지 않습니다 위의 코드에서 잘못된 것입니다

Post Headers: null 

Post Headers: {Content-Length=[11339], Connection=[keep-alive], X-Frame-Options= [SAMEORIGIN], X-Request-Identifier=[xxxxxxxxxxxxxxxxxx], Date=[Wed, 05 Oct 2016 16:56:49 GMT], Content-Type=[text/html], null=[HTTP/1.1 400 Bad Request], Cache-Control=[private]} 

.

답변

1

당신은 con.getRequestProperty("X-ApiKey")con.getRequestProperties()

응답 헤더에서 헤더 필드의 값을 반환 getHeaderField("") 방법 사용해야합니다. 매우 혼란 스럽기 때문에 더 잘 호출해야합니다. getResponseHeaderField("name")

openConnection(URL)이 호출 된 후 연결이 이미 서버로부터 응답을 받았기 때문에 출력이 비어 있지 않습니다.

+0

감사합니다! 나는 내 구슬을 잃어버린 줄 알았는데. 나는 그것이 표시해야 응답 헤더를 동의합니다! – Charabon