Операция исправления Salesforce Rest API - неверный запрос

Я пытаюсь вызвать операцию PATCH в API Salesforce нашей организации. URL правильный (формат - https://xxxx.salesforce.com/services/data/v43.0/sobjects/Classification__c/objectid?_HttpMethod=PATCH), как и содержимое JSON, хотя вы, возможно, не можете определить это из приведенного ниже кода.

    public async Task PatchSalesforceObjectAsync(string objectToPost, string objectid, HttpContent content)
    {
        SetupHttpClient();

        using (_response = await _httpClient.PostAsync($"{_sfObjectPartialURL}{objectToPost}{objectid}?_HttpMethod=PATCH", content))
        {
            if (_response.IsSuccessStatusCode)
            {
                var x = _response.Content;
            }
        }
    }

    void SetupHttpClient()
    {
        _httpClient = new HttpClient();
        _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _sfAccesstoken);
        _httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
        _httpClient.BaseAddress = _baseURI;
    }

Ответ - StatusCode: 400, ReasonPhrase: неверный запрос

Я сделал точно такой же запрос через POSTMAN, и он прошел нормально, поэтому я предполагаю, что проблема заключается в том, как я совершаю вызов в инфраструктуре .Net.

Я также пробовал использовать объект HttpRequestMessage, а затем вызвать SendAsync для объекта HttpClient, но это приводит к тому же результату.

    HttpRequestMessage message = new HttpRequestMessage()
        {
            Method = new HttpMethod("PATCH"),
            RequestUri = new Uri(_baseURI, $"{_sfObjectPartialURL}{objectToPost}{objectid}"),
            Content = content,
        };
        using (_response = await _httpClient.SendAsync(message))
        {

person Rakesh    schedule 14.06.2018    source источник


Ответы (1)


Ошибка новичка - в патче было поле, которое мне не разрешено обновлять, и поскольку я имел дело с одним и тем же объектом и переключался между POST и PATCH в зависимости от того, существует ли уже объект, я не знал об этом уровне поля ограничение.

person Rakesh    schedule 14.06.2018