相关疑难解决方法(0)

使用C#进行URL编码

我有一个应用程序向VB论坛软件发送POST请求并记录某人(没有设置cookie或任何东西).

一旦用户登录,我创建一个在其本地计算机上创建路径的变量.

C:\ tempfolder \日\用户名

问题是一些用户名正在抛出"非法字符"异常.例如,如果我的用户名是,mas|fenix它会抛出异常..

Path.Combine( _      
  Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _
  DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username)
Run Code Online (Sandbox Code Playgroud)

我不想从字符串中删除它,但是在服务器上通过FTP创建了带有用户名的文件夹.这导致了我的第二个问题.如果我在服务器上创建一个文件夹,我可以留下"非法字符"吗?我只是问这个,因为服务器是基于Linux的,我不确定Linux是否接受它.

编辑:似乎URL编码不是我想要的..这是我想要做的:

old username = mas|fenix
new username = mas%xxfenix
Run Code Online (Sandbox Code Playgroud)

其中%xx是ASCII值或任何其他可以轻松识别字符的值.

.net c# urlencode

316
推荐指数
11
解决办法
56万
查看次数

179
推荐指数
5
解决办法
8万
查看次数

UrlEncode通过控制台应用程序?

通常我会使用:

HttpContext.Current.Server.UrlEncode("url");
Run Code Online (Sandbox Code Playgroud)

但由于这是一个控制台应用程序,HttpContext.Current所以总会如此null.

还有另一种方法可以使用我可以使用的相同方法吗?

.net c# console

61
推荐指数
5
解决办法
6万
查看次数

控制台应用程序中的HttpUtility.UrlEncode

我想在控制台应用程序,VB.NET,VS 2010 Beta 2中使用HttpUtility.UrlEncode.

System.Web.HttpUtility.UrlEncode(item)
Run Code Online (Sandbox Code Playgroud)

错误消息:'HttpUtility'不是'Web'的成员.

在这个问题中, Anjisan建议添加对System.Web的引用,如下所示:

  1. 在解决方案资源管理器中,右键单击引用
  2. 选择"添加参考"
  3. 在"添加引用"对话框中,使用.NET选项卡
  4. 向下滚动到System.Web,选择它,然后点击确定

但是,我在该位置没有System.Web条目.

.net vb.net urlencode console-application visual-studio-2010

30
推荐指数
4
解决办法
4万
查看次数

Uri.EscapeDataString() - 无效的URI:Uri字符串太长

我在Windows Mobile上使用紧凑框架/ C#.

在我的应用程序中,我通过序列化对象并使用HttpWebRequest/POST请求将数据上传到服务器来上传数据.在服务器上,后置数据被反序列化并保存到数据库.

前几天我意识到我在帖子数据(&符号等)中遇到了特殊字符的问题.所以我在方法中引入了Uri.EscapeDataString(),一切都很顺利.

但是,今天我发现当应用程序尝试上传大量数据时出现问题(我不确定此刻究竟表示"大"的是什么!)

现有代码(种类)

var uploadData = new List<Things>();

uploadData.Add(new Thing() { Name = "Test 01" });
uploadData.Add(new Thing() { Name = "Test 02" });
uploadData.Add(new Thing() { Name = "Test with an & Ampersand " }); // Do this a lot!!

var postData = "uploadData=" + Uri.EscapeDataString(JsonConvert.SerializeObject(uploadData, new IsoDateTimeConverter()));
Run Code Online (Sandbox Code Playgroud)

问题

对Uri.EscapeDataString()的调用导致以下异常:

System.UriFormatException:无效的URI:Uri字符串太长.

题

有没有其他方法来准备上传数据?

据我所知,HttpUtility(它有自己的Encode/Decode方法)不适用于紧凑的框架.

c# uri compact-framework exception-handling httpwebrequest

29
推荐指数
2
解决办法
2万
查看次数

如何阻止HttpUtility.UrlEncode()从+更改为空格?

我正在使用HttpUtility.UrlEncode()字符串令牌,原始令牌是t+Bj/YpH6zE=当HttpUtility.UrlDecode()它变为t Bj/YpH6zE=打破算法时.是一种停止在c#中将+更改为空格的方法.

我目前正在使用replace方法来实现这一点 var token_decrypt = HttpUtility.UrlDecode(token).Replace(" ", "+");

public HttpResponseMessage RegisterUser(User user, string token)
        {
            int accID;

            if(string.IsNullOrWhiteSpace(token))
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
            else
            {
                try
                {
                     // token now = t Bj/YpH6zE= which will fail 
                     var token_decrypt = HttpUtility.UrlDecode(token);
                      token now = t Bj/YpH6zE= still the same 
                     accID = int.Parse(Crypto.Decrypt(token_decrypt, passPhrase));
                }
                catch
                {
                    return Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid account ");
                }
Run Code Online (Sandbox Code Playgroud)

她编码令牌

  string encoded_token = HttpUtility.UrlEncode(token);

            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
            SmtpClient …
Run Code Online (Sandbox Code Playgroud)

c# asp.net c#-4.0

5
推荐指数
2
解决办法
3136
查看次数

SSRS - Action Go To Url 转义特殊字符

我正在使用 SSRS Action -> Go To Url 像这样:

="javascript:void(window.open('http://xxx/xxx/Pages/ReportViewer.aspx?%2fDevelopment%2fReport&rs:Command=Render&Parameter="& Parameters!Parameter.Value &"'))"

生成的链接应该是:

http://xxx/xx/Pages/ReportViewer.aspx?/Development/Report&rs:Command=Render&Parameter=Úxxx

在上面的示例中,我需要以某种方式使用变音符号来转义特殊字符,例如字符“Ú”。没有转义这个字符,上面的链接就被破坏了。

谢谢你的帮助。

reporting-services

1
推荐指数
1
解决办法
8613
查看次数