我有一个控制台应用程序,使用HTTPClient
在Web服务器上传文件。相关守则 -
var client = new HttpClient();
//Set Auth Headers
var response = client.PutAsync(fullUrl, content).Result;
这可以正常工作,直到我在fullUrl
中有一个点。我在relaxedUrlToFileSystemMapping
中了解了如何使用web.config
。我在我的App.config
文件中添加了它,因为这是一个控制台应用程序,但它没有任何效果。有什么其他选择让它发挥作用?
工作示例网址 - http://myServer/commons/1.0/commons-logging-1-0.jar
非工作样本网址 - 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'
答案 0 :(得分:0)
句点是有效的网址字符。你遇到的问题与期间无关。如果您动态构建URL,则应该转义查询字符串。转义周期相当于'%2E',所以试试这个,如果你仍然得到相同的错误,那么你应该尝试使用Chrome调试工具(F12)或Fiddler工具跟踪你的请求/响应,并检查发送到服务器的内容。
有很多方法可以在C#中编码URL字符串,其中一种是HttpUtility
string url = HttpUtility.UrlEncode("http://myServer/commons/1.0/commons-logging-1.0.jar");