【发布时间】:2020-06-18 16:02:30
【问题描述】:
我有一个 REST 服务器和一个 REST 客户端。我正在尝试从 REST-Server 获取文件。客户端中的代码是这样的:
public async System.Threading.Tasks.Task<FileResponse> GetThingAsync(string token, System.Threading.CancellationToken cancellationToken)
{
var urlBuilder_ = new System.Text.StringBuilder();
urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/GetThing/{token}");
urlBuilder_.Replace("{token}", System.Uri.EscapeDataString(ConvertToString(token, System.Globalization.CultureInfo.InvariantCulture)));
var client_ = _httpClient;
try
{
using (var request_ = new System.Net.Http.HttpRequestMessage())
{
request_.Method = new System.Net.Http.HttpMethod("GET");
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/octet-stream"));
PrepareRequest(client_, request_, urlBuilder_);
var url_ = urlBuilder_.ToString();
request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute);
PrepareRequest(client_, request_, url_);
var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false);
...
服务器中的代码是这样的:
[HttpGet("GetThing/{token}")]
public async Task<IActionResult> GetThing(string thingId)
{
string tokens = thingId; //line is reached but the 'thingId' is always empty!
为什么“thingId”没有出现在服务器中?我必须通过其他方式吗?
【问题讨论】:
标签: c# rest get httpclient