Uploaded image for project: 'HttpComponents HttpClient'
  1. HttpComponents HttpClient
  2. HTTPCLIENT-1175

URLEncodedUtils.parse(HttpEntity) not working if Content-Encoding is not specified

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Invalid
    • 4.1.3, 4.2 Beta1
    • None
    • HttpClient (classic)
    • None

    Description

      The code below does not work :

      /**

      • Sets the authCode received from Facebook and exchanges it with the access token.
      • @param authCode
      • @throws IOException
      • @throws ClientProtocolException
        */
        public void setFacebookAuthCode(String authCode) throws ClientProtocolException, IOException {
        log.info("Retrieving access token using authCode {}", authCode);
        URI accessTokenUri = facebookAuth.getAccessTokenUri(authCode);
        DefaultHttpClient client = new DefaultHttpClient();
        HttpGet accessTokenReq = new HttpGet(accessTokenUri);
        HttpResponse response = client.execute(accessTokenReq);
        if (response.getStatusLine().getStatusCode() != 200)
        throw new IOException(String.format("GET %s throws HTTP Error %d: %s",
        accessTokenUri, response.getStatusLine().getStatusCode(), response.getStatusLine().getReasonPhrase()));
        // Probably due to non-existing Content-Encoding, this one is not working:
        List<NameValuePair> data = URLEncodedUtils.parse(response.getEntity());
        setFbAccessToken(data.get(0).getValue());

      log.info("Access token received, redirecting to Post Status page");
      ExternalContext external = FacesContext.getCurrentInstance().getExternalContext();
      external.redirect(external.encodeActionURL("/faces/post.xhtml"));
      }

      I have to use a workaround :

      Scanner scanner = new Scanner(response.getEntity().getContent());
      ArrayList<NameValuePair> data = new ArrayList<NameValuePair>();
      URLEncodedUtils.parse(data, scanner, "UTF-8");

      Expected behavior :

      Should either default to UTF-8 (recommended) or make it an explicit parameter.

      FYI : Code above is taken from FBStatus open source project at https://github.com/soluvas/fbstatus

      Attachments

        Activity

          People

            Unassigned Unassigned
            ceefour Hendy Irawan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: