标签: restsharp

RestSharp JSON POST 请求遇到错误请求

我正在使用 RestSharp 发出包含 JSON 正文的 POST 请求。但我收到错误请求错误。

因为我已经[]""J​​SON 中决定使用 Newtonsoft.Json 。在使用它之前,我什至看不到正在形成的 JSON 请求。

我愿意尝试MS httpwebrequest作为替代方案。

restClient = new RestClient();

restRequest = new RestRequest(ApiUrl, Method.POST, DataFormat.Json);

var myObject = "{ \"target\" : \"[5,5]\", \"lastseen\" : \"1555459984\" }";

var json = JsonConvert.SerializeObject(myObject);
restRequest.AddParameter("application/json", ParameterType.RequestBody);

restRequest.AddJsonBody(json);
Run Code Online (Sandbox Code Playgroud)

请注意,我正在尝试将 JSON 卷曲转换为 C#。请看下面:

curl -H 'Content-Type: application/json' -X POST -d '{ "target" : [5, 5], "lastseen" : "1555459984", "previousTargets" : [ [1, 0], [2, 2], [2, 3] ] }' http://santized/santized/santized

c# post json restsharp web-api-testing

0
推荐指数
1
解决办法
9754
查看次数

在RestSharp中使用POST方法

我想使用 RestSharp 将数据发布到我的 API:

创建.php

我的结构是这样的:

读取.php

在 PostMan 中,我使用正文选项和原始输入,如下所示:

{
    "story_code" : "Amazing Pillow 2.0",
    "master_code" : "199",
    "created" : "2018-06-01 00:35:07"
}
Run Code Online (Sandbox Code Playgroud)

邮差

它有效。在 RestSharp 中,我使用了这段代码,但它返回了错误请求和消息:“无法创建产品。数据不完整。”

var client = new RestClient("http://api.dastanito.ir");
var request = new RestRequest("/storiesmaster/creat.php", Method.POST);

request.AddParameter("story_code", "value");
request.AddParameter("master_code", "value2");

IRestResponse response = client.Execute(request);
var content = response.Content;
Run Code Online (Sandbox Code Playgroud)

我什至使用了 AddQueryParameter 但又是错误的请求。

我应该使用什么功能?

c# api restsharp

0
推荐指数
1
解决办法
1万
查看次数

使用 RestSharp 创建特定请求类型

我们正在使用 RestSharp 上传 base64 编码的文件。该 API 需要如下所示的请求格式,但我们无法使用 RestSharp 生成此格式。我想一定有办法吧?

格式1

POST https://www.myapiurl.com/api/v1/add HTTP/1.1
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------330780699366863579549053
Content-Length: 522

----------------------------330780699366863579549053
Content-Disposition: form-data; name="id"

7926456167
----------------------------330780699366863579549053
Content-Disposition: form-data; name="filename"

test2.txt
----------------------------330780699366863579549053
Content-Disposition: form-data; name="description"


----------------------------330780699366863579549053
Content-Disposition: form-data; name="attachment"

dGhpcyBpcyBhIHRlc3Q=
----------------------------330780699366863579549053--
Run Code Online (Sandbox Code Playgroud)

使用 RestSharp,我们只能创建一个如下所示的请求:

格式2

POST https://www.myapiurl.com/api/v1/add HTTP/1.1
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------330780699366863579549053
Content-Length: 83

id=7926456167&filename=SQLSearch.exe&description=&attachment=dGhpcyBpcyBhIHRlc3Q=
Run Code Online (Sandbox Code Playgroud)

对于我们正在使用的 API,除非“附件”参数是一个较大的文件,否则这可以正常工作。如果我们使用 FORMAT 1,我们可以手动撰写/提交对更大文件的请求。FORMAT 2 失败,但这就是我们可以从 RestSharp 中得到的一切。

这是我们正在使用的代码。

var client = new RestClient("http://myapiurl.com/api/v1/add");
var restRequest = new RestRequest(request, Method.POST);
restRequest.AddHeader("Content-Type", "multipart/form-data; boundary=--------------------------330780699366863579549053");
restRequest.AddParameter("id", "7926456167", "multipart/form-data", …
Run Code Online (Sandbox Code Playgroud)

c# api restsharp asp.net-core

0
推荐指数
1
解决办法
1564
查看次数

Flurl \ RestSharp:在Multipart请求的每个参数中添加`\r\n`

我正在尝试使用 Flurl 或 RestSharp 库编写对 Freshdesk API 的调用。

我试图编写的 API 调用是创建票证:https ://developers.freshdesk.com/api/#create_ticket

卷曲的示例:

curl -v -u yourapikey:X -F "attachments[]=@/path/to/attachment1.ext" -F "attachments[]=@/path/to/attachment2.ext" -F "email=example@example.com" -F "subject=Ticket Title" -F "description=this is a sample ticket" -X POST 'https://domain.freshdesk.com/api/v2/tickets'

注意参数是通过-F(即--form)标志传递的。

使用以下代码调用 Flul:

var rs = await url.WithBasicAuth(_configuration.ApiKey, _configuration.Password)
                  .PostMultipartAsync(mp =>
                  {
                      mp.AddString("email", ticket.Email);
                      mp.AddString("subject", ticket.Subject);
                      mp.AddString("status", ticket.Status.ToString());
                      mp.AddString("priority", ticket.Priority.ToString());
                      mp.AddString("description", ticket.Description);
                  });
Run Code Online (Sandbox Code Playgroud)

...或者调用 RestSharp 的以下代码:

var request = new RestRequest("tickets", Method.Post);
request.AlwaysMultipartFormData = true;
request.AddParameter("email", ticket.Email);
request.AddParameter("description", ticket.Description);
request.AddParameter("subject", …
Run Code Online (Sandbox Code Playgroud)

multipartform-data restsharp flurl asp.net-core freshdesk

0
推荐指数
1
解决办法
495
查看次数

将变量添加到逐字字符串文字

我是 C# 编程新手。

我正在尝试自动化一些 API 测试并使用 RestSharp 库在 POST 请求中传递有效负载。该有效负载看起来像这样

public class Payload
    {
        public string firstPayload = @"{
" + "\n" +
@"  ""channel"": ""XYZ"",
" + "\n" +
@"  ""Email"": ""abc@abc.com""
" + "\n" +
@"}";
}
Run Code Online (Sandbox Code Playgroud)

我在测试项目中将此负载称为有效负载。该请求在 Postman (JSON) 中看起来像这样

{
  "channel": "XYZ",
  "Email": "abc@abc.com"
}
Run Code Online (Sandbox Code Playgroud)

但由于我不能一遍又一遍地使用同一电子邮件,现在我想在电子邮件中添加 YYYYMMDDTHHMMSS 格式的 (DateTime.Now) ,以便每次运行测试时,它都是唯一的电子邮件。该电子邮件应类似于“abc20220825124587@abc.com”

但我不确定如何在逐字字符串firstPayload C# 代码中添加当前日期时间

c# automation visual-studio restsharp verbatim-string

0
推荐指数
1
解决办法
717
查看次数

RestSharp 不反序列化字符串(始终为 null)

我目前尝试从 RestSharp PostAsync 调用获取序列化响应,如

var responseData = Client.PostAsync<Data>(request).Result;
Run Code Online (Sandbox Code Playgroud)

现在,这就是我收到的:

    {
    "status":1,
    "success":"message transmitted",
    "available":19215,
    "message_ids":"26684730:56798"
    }
Run Code Online (Sandbox Code Playgroud)

这是“数据”类:

public class Data
{
    [JsonProperty("status")]
    public int Status { get; set; }

    [JsonProperty("success")]
    public string Success { get; set; }

    [JsonProperty("available")]
    public int Available { get; set; }

    [JsonProperty("message_ids")]
    public string MessageIds { get; set; }

    [JsonProperty("error")]
    public string Error { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但属性message_ids始终为空!?这可能是由字符串中的 : 引起的,而这是 RestSharp 中的一个错误吗?

“数据”如下所示:

在此输入图像描述

c# json restsharp deserialization json-deserialization

0
推荐指数
1
解决办法
256
查看次数

如何使用 Restsharp 在 GET 调用中添加路径参数?

我有以下网址http://example-api.com/userid/1234 如何将 1234 路径参数添加到我的网址中。

RestRequest 类具有 AddParameter 和 ParameterType 但我没有看到路径参数的任何选项

   RestRequest.AddParameter(value, ParameterType.);
Run Code Online (Sandbox Code Playgroud)

c# restsharp

-1
推荐指数
1
解决办法
5393
查看次数