Home > Blockchain >  Hot to put with httpclient? Rest(ish) API
Hot to put with httpclient? Rest(ish) API

Time:04-14

I'm working with the pipedrive API and trying to update a record (deal, but the endpoint isn't important). The format of the is as follows.

https://companyDomain.pipedrive.com/api/v1/deals/DealID?api_token=API-Token

Where companydomain specifies your account with them, dealID is the ID we're updating and API token is the token supplied by pipedrive to access the API. It's not a token that's returned by logging in, it's static one, given on day one and never changes. HttpClient seems to want a base address so "https://companyDomain.pipedrive.com/", then something like the following:

HttpResponseMessage response = await client.PutAsJsonAsync(
        $"api/v1/deals/{dealId}/", args);

Where args is a class with the field/s and value/s I want to update.

If I include the api_token as fields in "args", it returns a 404 not found. If I append it to the base url or the $api/v1/deals/{dealID}/ it returns permission denied.

Any suggestions as to how I can handle this?

I've managed to make a living coding for 30 years avoiding the web, now it's all anyone seems to want. Appears I have to finally get a handle on this, hence the recent questions! ;-)

Thanks in advance

Jim

CodePudding user response:

Append it with a "?" So your URL should look like api/v1/deals/YOUR_ID?api_token=THE_TOKEN

HttpResponseMessage response = await client.PutAsJsonAsync(
    $"api/v1/deals/{dealId}?api_token={apiToken}", args);
  • Related