相关疑难解决方法(0)

如何在C#中为URL构建查询字符串?

从代码调用Web资源时的常见任务是构建查询字符串以包含所有必需参数.虽然无论如何都没有火箭科学,但是你需要注意一些漂亮的细节,&如果不是第一个参数,编码参数等.

这样做的代码非常简单,但有点单调乏味:

StringBuilder SB = new StringBuilder();
if (NeedsToAddParameter A) 
{ 
  SB.Append("A="); SB.Append(HttpUtility.UrlEncode("TheValueOfA")); 
}

if (NeedsToAddParameter B) 
{
  if (SB.Length>0) SB.Append("&"); 
  SB.Append("B="); SB.Append(HttpUtility.UrlEncode("TheValueOfB")); }
}
Run Code Online (Sandbox Code Playgroud)

这是一个常见的任务,人们期望实用程序类存在,使其更加优雅和可读.扫描MSDN,我找不到一个 - 这让我想到了以下问题:

你知道做上述事情最干净的方式是什么?

.net c# url query-string

459
推荐指数
18
解决办法
31万
查看次数

解析并修改.NET Core中的查询字符串

我得到一个包含查询字符串的绝对URI.我希望安全地将值附加到查询字符串,并更改现有参数.

我不想&foo=bar使用或使用正则表达式,URI转义是棘手的.相反,我想使用内置机制,我知道这将正确地执行此操作并处理转义.

发现 大量的答案都可以使用HttpUtility.然而,这是ASP.NET Core,不再有System.Web程序集,因此不再需要HttpUtility.

在针对核心运行时的ASP.NET Core中执行此操作的适当方法是什么?

c# asp.net asp.net-core

97
推荐指数
4
解决办法
5万
查看次数

NameValueCollection到URL查询?

我知道我能做到这一点

var nv = HttpUtility.ParseQueryString(req.RawUrl);
Run Code Online (Sandbox Code Playgroud)

但有没有办法将其转换回网址?

var newUrl = HttpUtility.Something("/page", nv);
Run Code Online (Sandbox Code Playgroud)

asp.net url namevaluecollection url-encoding

69
推荐指数
7
解决办法
4万
查看次数

.NET HttpClient将查询字符串和JSON正文添加到POST

如何设置.NET HttpClient.SendAsync()请求以包含查询字符串参数和JSON正文(在POST的情况下)?

// Query string parameters
var queryString = new Dictionary<string, string>()
{
    { "foo", "bar" }
};

// Create json for body
var content = new JObject(json);

// Create HttpClient
var client = new HttpClient();
client.BaseAddress = new Uri("https://api.baseaddress.com/");

var request = new HttpRequestMessage(HttpMethod.Post, "something");
// Setup header(s)
request.Headers.Add("Accept", "application/json");
// Add body content
request.Content = new StringContent(
    content.ToString(),
    Encoding.UTF8,
    "application/json"
);

// How do I add the queryString?

// Send the request
client.SendAsync(request);
Run Code Online (Sandbox Code Playgroud)

我见过的每个例子都说要设置

request.Content = new FormUrlEncodedContent(queryString) …
Run Code Online (Sandbox Code Playgroud)

c# dotnet-httpclient

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

如何在没有回发的情况下更改同一页面上的查询字符串

我想更改我写笔记的页面上的查询字符串。当我保存笔记时,我希望查询字符串具有该笔记的条目。因此,在初始保存后,用户可以根据查询字符串进行更新。但是要更新查询字符串,我需要进行完整的回发。反正有没有像这样更改查询字符串?

javascript c# asp.net ajax

5
推荐指数
1
解决办法
3255
查看次数

如何在 C# 中将查询字符串添加到 HttpClient.BaseAdress 中?

我试图将查询字符串传递到 BaseAddress 但它无法识别引号“?”。

引用破坏了 URI

首先我创建我的 BaseAddress

httpClient.BaseAddress = new Uri($"https://api.openweathermap.org/data/2.5/weather?appid={Key}/"); 
Run Code Online (Sandbox Code Playgroud)

然后我调用 GetAsync 方法,尝试添加另一个参数

using (var response = await ApiHelper.httpClient.GetAsync("&q=mexico"))....
Run Code Online (Sandbox Code Playgroud)

这是代码调用的 URI

https://api.openweathermap.org/data/2.5/&q=mexico
Run Code Online (Sandbox Code Playgroud)

c# httpclient

4
推荐指数
1
解决办法
5824
查看次数

在使用.NET HttpClient类时,是否有一种简单的方法来格式化查询字符串?

我在不同的地方有一些代码,我有一个Dictionary<string,string>包含参数需要在查询字符串上.我有一些自己的代码用于格式化,以便它可以添加到URL的末尾.这个库里面有什么内容可以帮我吗?

c# dotnet-httpclient

3
推荐指数
1
解决办法
1250
查看次数