我有一个自定义复杂类型,我想使用Web API.
public class Widget
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的Web API控制器方法.我想像这样发布这个对象:
public class TestController : ApiController
{
// POST /api/test
public HttpResponseMessage<Widget> Post(Widget widget)
{
widget.ID = 1; // hardcoded for now. TODO: Save to db and return newly created ID
var response = new HttpResponseMessage<Widget>(widget, HttpStatusCode.Created);
response.Headers.Location = new Uri(Request.RequestUri, "/api/test/" + widget.ID.ToString());
return response;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想使用System.Net.HttpClient来调用该方法.但是,我不确定要传递给PostAsync方法的对象类型以及如何构造它.这是一些示例客户端代码.
var client …Run Code Online (Sandbox Code Playgroud) 我想编写一个RavenDB查询,如果它可用,则按值过滤,但如果该值不可用,我希望它返回所有对象.例如,在linq到对象中,我可以这样做:
var matches = people.Where(x => x.LastName == userEntry || userEntry == string.Empty).ToList();
Run Code Online (Sandbox Code Playgroud)
但以下方法不起作用:
var matches = RavenSession.Query<Person>().Where(x => x.LastName == userEntry || userEntry == string.Empty).ToList();
Run Code Online (Sandbox Code Playgroud)
因为userEntry它不是索引值,所以会引发异常.
我怎么能做到这一点?
我的重定向 URI 配置如下:
\n\nhttps://<url>/RALauncher/signin-oidc\nRun Code Online (Sandbox Code Playgroud)\n\n但如果我去这里:
\n\nhttps://<url>/ralauncher\nRun Code Online (Sandbox Code Playgroud)\n\n并登录,我收到此错误消息:
\n\n\n\n\n抱歉,我们\xe2\x80\x99 在让您登录时遇到问题。
\n\nAADSTS50011: 请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:\n“<guid>”。更多详细信息:由于区分大小写,回复地址\n 不匹配。
\n
是否可以配置此以使重定向 URI 不区分大小写?我在 Azure 门户中找不到此设置。
\n我们使用 Azure Devops 作为 git 存储库,之前我们经常遇到一个问题,即我们会收到“终端提示已禁用”错误。当我们升级到 Visual Studio (2019) 版本 16.8.1 时,这个问题就消失了,一切看起来都很好。然而,在这个版本大约两周后,我和我们的其他一些开发人员现在收到了这个错误:
Failed to push to the remote repository. See the Output window for more details.
Updating 7df912b..b4954c1
Git failed with a fatal error.
Failed to write item to store. [0x520]
A specified logon session does not exist. It may already have been terminated
POST git-upload-pack (909 bytes)
remote: Azure Repos
remote:
remote: Found 12 objects to send. (9 ms)
From https://dev.azure.com/myOrg/_git/myApp
7df971b..b4958c1 master -> origin/master
Run Code Online (Sandbox Code Playgroud)
有时它也会说失败并检查输出窗口。当我去检查错误时,它会在输出窗口本身中显示“检查输出窗口”,而没有进一步的错误消息。我尝试清除 AppData 中的 git …
我正在尝试使用 HttpClient 对 Web API 方法发出 PUT 请求。几乎相同的 POST 请求按预期工作,但 PUT 请求会导致 400(错误请求)错误。我不确定我做错了什么。
这是我的 Web API 控制器代码:
public HttpResponseMessage Post(object val)
{
Debug.WriteLine(val.ToString());
return new HttpResponseMessage(HttpStatusCode.OK);
}
public HttpResponseMessage Put(int id, object val)
{
Debug.WriteLine(id.ToString(), val.ToString());
return new HttpResponseMessage(HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)
这是尝试调用这些方法的客户端代码。POST 请求如下所示:
var client = new HttpClient();
var content = log.ToJsonContent();
var address = new Uri(_webApiBaseAddress + "logs");
client.PostAsync(address, content).ContinueWith(requestTask =>
{
requestTask.Result.EnsureSuccessStatusCode();
});
Run Code Online (Sandbox Code Playgroud)
不起作用的 PUT 请求如下所示:
var client = new HttpClient();
var content = log.ToJsonContent();
var address = new …Run Code Online (Sandbox Code Playgroud) c# restsharp http-status-code-400 asp.net-web-api dotnet-httpclient