restsharp - API call with name/value in url vs querystring? -


im trying convert call forvo api (forvo.com) hardcoded url string assigning request parameters 1 one forvorequestclass's properties created in c# via .addparameter method...but when request made...it turns querystring format this:

http://apifree.forvo.com/?key=[mykeygoeshere]&language=en&format=json&limit=1&order=rate-desc&sex=f&type=word&word=apple} 

instead of this:

http://apifree.forvo.com/key/[mykeygoeshere]/language/en/format=json/limit/1/order/rate-desc/sex/f/type/word/word/apple 

i have tried various ways call using restsharp...to no avail...any ideas...??

ok...i believe found answer. on github repo restsharp ( [1]: https://github.com/restsharp/restsharp/wiki/parametertypes-for-restrequest) found following helpful section:

urlsegment

unlike getorpost, parametertype replaces placeholder values in requesturl:

var rq = new restrequest("health/{entity}/status"); rq.addparameter("entity", "s2", parametertype.urlsegment); 

when request executes, restsharp try match {placeholder} parameter of name (without {}) , replace value.

so above code results in “health/s2/status” being url.

so info, constructed url string placeholders each of parameters forvo this:

/key/{key}/format/{format}/action/{action}/language/{language}/sex/{sex}/order/{order}/limit/{limit}/type/{type}/word/{word}

my final code substitution this:

irestclient client = new restclient(soundrequest.siteurlvalue);             request.addparameter(soundrequest.apikeyname, soundrequest.apikeyvalue, parametertype.urlsegment);             request.addparameter(soundrequest.actionname, soundrequest.actionvalue, parametertype.urlsegment);             request.addparameter(soundrequest.languagename, soundrequest.languagevalue, parametertype.urlsegment);             request.addparameter(soundrequest.formatname, soundrequest.formatvalue, parametertype.urlsegment);             request.addparameter(soundrequest.sexname, soundrequest.sexvalue, parametertype.urlsegment);             request.addparameter(soundrequest.ordername, soundrequest.ordervalue, parametertype.urlsegment);             request.addparameter(soundrequest.limitname, soundrequest.limitvalue, parametertype.urlsegment);             request.addparameter(soundrequest.typename, soundrequest.typevalue, parametertype.urlsegment);             request.addparameter(soundrequest.wordname, soundrequest.wordvalue, parametertype.urlsegment); 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -