当前位置: 首页 > 知识库问答 >
问题:

如何在WebClient中指定消息正文?

缑泓
2023-03-14

在控制台中,我跟踪我所在站点正在拨打的电话,我可以看到地址(some.site.com/gettoken)、消息头和FF称之为消息体的东西。正是在后者中,我可以看到我在正在发送的站点上输入的凭据。

所以,我有URL和消息正文。然后,我尝试像这样使用C#为我的Azure服务层实现行为。

String url = @"https://some.site.com/gettoken";
String credentials = "username=super&password=secret";
using (WebClient client = new WebClient())
{
  String output = client.UploadString(url, credentials);
  result = output;
}

然而,我得到错误400-糟糕的结果。我错过了什么?

我在google上搜索了一些东西,但唯一与之相关的是我使用的上传方法。我是完全找错人了,还是错过了什么小东西?有些人似乎能做到这一点,但他们并没有到处炫耀。我还不能确定这是否有关联。

共有1个答案

伏业
2023-03-14

因此,作为评论中讨论内容的总结:您可以使用更现代的HttpClient。

请注意,这是System. Net. Http. HttpClient而不是Windows. Web. Http. HttpClient

一个示例实现可以如下所示:

public async Task<string> SendCredentials()
{
    string url = @"https://some.site.com/gettoken";
    string credentials = "username=super&password=secret";
    using(var client = new HttpClient())
    {
        var response = await client.PostAsync(url, new StringContent(credentials));
        return await response.Content.ReadAsStringAsync();
    }
}

您可能还对系统感兴趣。网Http。FormUrlEncodedContent允许您传入参数及其值,这样您就不必自己构造凭据。

有关async/wait的更多信息。

 类似资料:
  • 我有一条路由(Camel 2.17.3),它使用丰富的 DSL 调用Rest服务并将结果聚合到消息正文中。不过,我遇到了序列化问题。这是我正在尝试的。我的路线如下所示: 正如您所看到的,我想使用enrich()DSL调用一些现有服务,并将这些结果聚合起来,形成一个新的消息体,以便进一步处理。我需要将rest调用的结果从Json转换为MyResponse。我想用这个: 但我需要它已经在我的Aggre

  • 问题内容: 从Python标准库的组件中获取异常消息的最佳方法是什么? 我注意到在某些情况下,您可以通过如下字段获取它: 但在某些情况下(例如在套接字错误的情况下),您必须执行以下操作: 我想知道是否有标准方法可以涵盖大多数情况? 问题答案: 如果查看内置错误的文档,则会看到大多数类将其第一个参数分配为属性。并非所有人都这样做。 值得注意的是,(与子类和)具有的第一自变量,第二的。没有…大致类似于

  • 在我的webflux应用程序中,我想通过WebClient发送一些请求。我想处理所有条件(200、401、403和...response ),然后向客户端响应一个json。对于错误状态代码,我想使用@RestControllerAdvice,所以我必须抛出一个自定义异常,然后在控制器建议中处理自定义json。参见示例代码: 现在异常处理程序如下: Webclient获得一个包含json主体的401

  • > 如果请求中没有指定SentTimestamp属性,那么当Amazon在sqs中接收消息时,它是否将其系统时间戳作为SentTimestamp值? 从我的实验来看,即使我在请求中指定了SentiTimestamp属性,我确实看到Amazon没有将该值作为消息sentTimeStamp。 如果我的本地系统时钟与NTP服务器不同步,是否会对SentTimestamp属性产生任何影响?

  • 在我的服务器处理程序中;-channelRead()总是以HTTPRequest的形式获取msg,在那里我找不到任何获取POST请求有效负载的地方。 null 在我的服务器管道中,我只有HttpServerCodec和一个自定义处理程序。

  • 我在redis stream文档中看到了这一点,它说: 是时候试着用消费者群体来阅读一些东西了: XREADGROUP回复与XREAD回复一样。请注意,尽管上面提供了一个组,但它声明我希望使用消费者组mygroup从流中读取数据,我是消费者Alice。每次使用者对使用者组执行操作时,都必须指定其名称,以便在组内唯一标识此使用者。 在上面的命令行中还有另一个非常重要的细节,在强制流选项之后,为密钥m