Параметър на заявката за процентно кодиране на URL Bing API Java

Опитвам се да кодирам процента на URL стойността на моя параметър на заявката, докато използвам URIBuilder, за да направя HTTP заявка към Bing API.

URL адресът изглежда така

"https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?$format=json&Query="

Където низът на заявката трябва да бъде като %27Test%20query%27

Използвайки URLEncoder.encode(string, code), низ като "test query" се превръща в "test+query", което е неприемливо.

URIUtil.encodeQuery()

връща "test%20query", което е почти приемливо, освен че се нуждае от %27 в началото и в края.

Когато се опитам просто да свържа низа, за да го направя валиден като такъв, и след това да го заредя в URIBuilder, URIBuilder завършва с

https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?%24format=json&Query=%2527test%2520query%2527 

което отново е недопустимо.

Как мога да отстраня този проблем? Побърква ме.

Благодаря за всяка помощ.


person Adam Bronfin    schedule 04.06.2014    source източник


Отговори (1)


това е кодиран URI. $ е %24 банката е %20

ако искате истински URI, трябва да декодирате.

Мисля, че методът на декодиране работи добре за вас.

справка тук:

http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/util/URIUtil.html

person tyjang    schedule 04.06.2014
comment
Благодаря ви много, URI кодира ли и URL адреса по подразбиране? - person Adam Bronfin; 04.06.2014
comment
може би по подразбиране е кодиране, но можете да зададете на вашия WAS. ако използвате tomcat или друг сървър за уеб приложения. можете да намерите опцията. - person tyjang; 05.06.2014