public void TestChineseFilename() { const string expected = " attachment;\n\tfilename*=gb18030''%B2%E2%CA%D4%CE%C4%B1%BE.txt\n"; var disposition = new ContentDisposition(ContentDisposition.Attachment); disposition.Parameters.Add("GB18030", "filename", "测试文本.txt"); var format = FormatOptions.Default.Clone(); format.NewLineFormat = NewLineFormat.Unix; var encoded = disposition.Encode(format, Encoding.UTF8); Parameter param; Assert.AreEqual(expected, encoded, "The encoded Chinese filename parameter does not match the expected value."); Assert.IsTrue(ContentDisposition.TryParse(encoded, out disposition), "Failed to parse Content-Disposition"); Assert.AreEqual("测试文本.txt", disposition.FileName, "The decoded Chinese filename does not match."); Assert.IsTrue(disposition.Parameters.TryGetValue("filename", out param), "Failed to locate filename parameter."); Assert.AreEqual("GB18030", param.Encoding.HeaderName, "The filename encoding did not match."); }
public void TestChineseFilename2047() { const string expected = " attachment; filename=\"=?gb18030?b?suLK1M7Esb4udHh0?=\"\n"; var disposition = new ContentDisposition(ContentDisposition.Attachment); disposition.Parameters.Add("GB18030", "filename", "测试文本.txt"); var format = FormatOptions.Default.Clone(); format.ParameterEncodingMethod = ParameterEncodingMethod.Rfc2047; format.NewLineFormat = NewLineFormat.Unix; var encoded = disposition.Encode(format, Encoding.UTF8); Parameter param; Assert.AreEqual(expected, encoded, "The encoded Chinese filename parameter does not match the expected value."); Assert.IsTrue(ContentDisposition.TryParse(encoded, out disposition), "Failed to parse Content-Disposition"); Assert.AreEqual("测试文本.txt", disposition.FileName, "The decoded Chinese filename does not match."); Assert.IsTrue(disposition.Parameters.TryGetValue("filename", out param), "Failed to locate filename parameter."); Assert.AreEqual("GB18030", param.Encoding.HeaderName, "The filename encoding did not match."); }
public static bool TestStorageServiceCreateFile() { bool done = false; using (HttpClient client = HttpClient.Create("localhost", 3333)) { HttpClientRequest request = new HttpClientRequest(); request.Method = "POST"; request.Path = "/storage/1/0"; MultipartContent content = new MultipartContent(); FileContent fileContent = new FileContent("../../data/document/text.txt"); Dictionary <string, string> disposition = new Dictionary <string, string>(); disposition["name"] = "file"; disposition["filename"] = "text.txt"; fileContent.Headers["content-disposition"] = ContentDisposition.Encode(disposition); content.Add(fileContent); request.Content = content; client.SendRequest(request); HttpClientResponse response = client.GetResponse(); done = (response.StatusCode == 200); } return(done); }