On 20/02/15 15:06, Martynas Jusevičius wrote:
https://issues.apache.org/jira/browse/JENA-884

Thanks.

        Andy


On Fri, Feb 20, 2015 at 1:00 PM, Andy Seaborne <[email protected]> wrote:
On 19/02/15 21:56, Martynas Jusevičius wrote:

Hey,

I have some code that adds query parameters to SPARQL Protocol requests.

According to my quick research, the final HTTP query string depends on
com.hp.hpl.jena.sparql.engine.http.Params.httpString():

      public String httpString()
      {
          StringBuffer sbuff = new StringBuffer() ;
          boolean first = true ;
          for (Pair p : pairs())
          {
              if ( !first )
                  sbuff.append('&') ;
              sbuff.append(p.getName()) ;
              sbuff.append('=') ;
              String x = p.getValue() ;
              x = Convert.encWWWForm(x) ;
              sbuff.append(x) ;
              first = false ;
          }
          return sbuff.toString() ;
      }

I see the parameter values being encoded, but not the names, for some
reason? Looks like a bug to me.


Same - could you raise a JIRA so it does not get forgotten about?


Also, the code depends on URLEncoder.encode(), which implements
"application/x-www-form-urlencoded", aka HTML form encoding.

To my understanding, this is different from the URI syntax spec:
https://tools.ietf.org/html/rfc3986

One of the differences is space encoded as "+" vs. "%20".

Am I right that the incorrect encoding is used here (and probably in
similar places)?


Yes - and we have various encoders for different HTTP usages so it looks
like it's just usage of old code.

         Andy



Martynas
graphityhq.com



Reply via email to