HTTPClient控制台应用程序的文件名中的点字符导致400错误请求
本文关键字:字符 错误 请求 控制台 应用程序 文件名 HTTPClient | 更新日期: 2023-09-27 18:12:08
我有一个控制台应用程序,它使用HTTPClient
在web服务器上上传文件。相关守则-
var client = new HttpClient();
//Set Auth Headers
var response = client.PutAsync(fullUrl, content).Result;
这工作得很好,直到我有一个点在fullUrl
。我读到在web.config
中使用relaxedUrlToFileSystemMapping
。我在我的App.config
文件中添加了它,因为这是一个控制台应用程序,但它没有效果。还有什么其他选择可以让它发挥作用?
工作示例URL - http://myServer/commons/1.0/commons-logging-1-0.jar
非工作示例URL - http://myServer/commons/1.0/commons-logging-1.0.jar
注意,不工作的JAR名称用commons-logging-1.0.jar
代替了commons-logging-1-0.jar
StatusCode: 400, ReasonPhrase: 'Bad Request'
句点是有效的URL字符。你的问题与月经无关。如果动态构建URL,则应该转义查询字符串。转义期间相当于'%2E',所以尝试,如果你仍然得到相同的错误,那么你应该尝试使用Chrome调试器工具(F12)或Fiddler工具跟踪你的请求/响应,并检查发送到服务器的内容。
在c#中有很多方法来编码URL字符串,其中之一就是HttpUtilitystring url = HttpUtility.UrlEncode("http://myServer/commons/1.0/commons-logging-1.0.jar");