繁体   English   中英

C# POST 请求适用于 POSTMAN 但不适用于 C# HttpWebRequest

[英]C# POST request works on POSTMAN but not on C# HttpWebRequest

我只在 C# 中得到代码 400,当我使用邮递员时,我得到 200! 它具有相同的属性。

我最初将这些类创建为 JSONProperty 属性,但在去中心化后仍然得到代码 400。

在 fiddler innder 异常中发现 - message=parameters:“XXXXX.AzureAd.XXX.Types.NewDescriptionEntry”类型上不存在“Changedby”属性。 确保仅使用由类型定义的属性名称。

在此处输入图片说明 创建类后在 C# 中调试模式下的 JSON - JSON 模式。

在此处输入图片说明

 // Serialize our concrete class into a JSON String
                var stringPayload = await Task.Run(() => 

JsonConvert.SerializeObject(payload_transferIncident));

            // build the URL we'll hit
            var url = string.Format("https://XXXXXX", "YYYYY", id, "XXXX");

            //create the request
           var req = HttpWebRequest.CreateHttp(url);

            //add in the cert we'll authenticate with
             req.ClientCertificates.Add(IcmIncidentOperation.GetCert("XXXXXX"));

            req.ContentType = "application/json";
            req.Method = "POST";
            if (req == null)
                throw new ApplicationException(string.Format("Could not create the httprequest from the url:{0}", url));
            try
            {
                using (var streamWriter =   new StreamWriter(req.GetRequestStream()))
                {
                    streamWriter.Write(stringPayload);
                }
                var httpResponse = (HttpWebResponse)req.GetResponse();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                var httpResponse = (HttpWebResponse)req.GetResponse();
            }

尝试使用HttpRequest POST METHOD 这种方式

try
        {
            var baseAddress = new Uri("Your base url");

            using (var httpClient = new HttpClient
            {
                BaseAddress = baseAddress
            })
            {
                var json =Newtonsoft.Json.JsonConvert.SerializeObject( payload);

                using (var content = new StringContent( json, System.Text.Encoding.Default, "application/json"))
                {
                    try
                    {
                        using (var response = await httpClient.PostAsync("end-point url method", content))
                        {

                            result = await response.Content.ReadAsStringAsync();
                        }
                    }
                    catch(Exception ex)
                    {
                        return ex.Message;
                    }

                }
            }

        }
        catch (Exception ex)
        {
            result = ex.Message;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM