HttpWebRequest 的 URL 被特殊字符截断

2024-03-30

我需要调用的 Web 服务的 URL 包含一个包含自由格式文本的参数。我不知道为什么它是这样设计的,因为它是使用 POST 发送的,并且包含许多字段作为 POST 的一部分。但是,这给我带来了一个问题。

对于井号和 等某些字符,URL 在遇到问题字符时会被截断。我正在对参数的文本进行 HTML 编码,但问题仍然存在。 我可以看到像 > 这样的特殊字符被编码为像 gt; 这样的东西。我认为编码字符串中的分号在某种程度上是一个问题。

我在服务器上放置了一个嗅探器来接收传入请求,我发现 URL 已被截断。

在服务器上我看到类似的内容:

    ...?extraData=kjfkfjslkj

代替:

    ...?extraData=kjfkfjslkj#kfjkdlsfj

代码是这样的:

    using System.Web;
    ....
    String strExtra="kjfkfjslkj#kfjkdlsfj";
    strURL = strStuff + "?extraData=" + System.Web.HttpUtility.HtmlEncode(strExtra);
    HttpWebRequest oRequest = (HttpWebRequest)WebRequest.Create(new Uri(strURL));
    oRequest.Method = httpMethod;
    oRequest.ContentType = "application/atom+xml";
    ...
    using (WebResponse oResponse = oRequest.GetResponse())
    {
    ...
    }

哈希之后的所有内容 (#) 标志未发送到服务器。浏览器和页面上的脚本使用它来表示页面上的位置或其他含义。删除哈希符号或对其进行 url 编码 (%23)将其发送到服务器。

这行:

strURL = strStuff + "?extraData=" + System.Web.HttpUtility.HtmlEncode(strExtra);

应该

strURL = strStuff + "?extraData=" + Server.UrlEncode(strExtra);

当使用 url 中的数据时,html 编码是没有用的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpWebRequest 的 URL 被特殊字符截断 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 我的 iOS 程序将自己宣传为什么 HTTP 用户代理?

    我为我的播客编写了一个应用程序 御宅族的播客 http otakunopodcast com 在应用程序的各个部分 我使用NSURLConnection 获取 RSS 源 UIWebView 显示网站内容 AVPlayer 从我们的 CDN
  • 包含图像的 div 底部的空间[重复]

    这个问题在这里已经有答案了 对于这个小提琴 为什么底部有一个空格div imageDiv JSFiddle http jsfiddle net 7Knyx 1 div div div img src http upload wikimedi
  • 如何使用 Python 识别 PDF 文件中的删除文本

    我想从 pdf 文件中仅提取删除线文本 我已经尝试过下面的代码 它正在使用我拥有的示例 pdf 文件 但它不适用于另一个我认为是扫描文件的 pdf 文件 有没有任何标准方法可以使用 python 从 pdf 文件中仅提取删除文本 任何帮助将
  • 如何防止浏览器在返回 Django 时重新填充表单数据

    我有一个 Django 表单 可以将数据提交到数据库 成功填写表单并提交数据后 表单将重定向到另一个页面 但是 当用户点击浏览器上的后退按钮时 数据就会返回 有没有办法防止数据返回 将其添加到您的 HTML 中 它将不会缓存 如果你想要 D
  • Dynamic_cast 是如何工作的?

    如果您有以下情况 class Animal class Bird public Animal class Dog public Animal class Penguin public Bird class Poodle public Dog
  • LinkedIn API 字段选择器

    我最近开始阅读和测试 LinkedIn 的 API 但在使用时遇到问题field selectors 我的目标是使用 API 获取有关人员的信息 例如名字 姓氏 当前公司和头衔 默认情况下 人员搜索 https developer link
  • 如何像alert()一样聚焦窗口/选项卡?

    如果在我的某些选项卡中执行了alert 那么该选项卡将立即被选中 问题是 这个alert 框很丑 我已经用我的设计和所有内容创建了 但是当我调用它时 选项卡未被选择 聚焦 窗口 焦点 不起作用 有任何想法吗 您无法可靠地强制窗口或选项卡获取
  • 使用 openpyxl 用颜色填充单元格?

    我目前正在使用 openpyxl v2 2 2 for Python 2 7 我想为单元格设置颜色 我使用了以下进口 import openpyxl from openpyxl import Workbook from openpyxl s
  • 开始使用 .NET - ASP.NET、WPF、Silverlight 还是命令行 C#?

    如果有人开始使用 NET 框架 最可行的模板是什么 我所说的可行是指具有最低学习曲线和最高收益的方法 从 开始 命令提示符应用程序 在 C 中 使用 ASP NET 的 Web 应用程序 XAML C 中的 Silverlight 应用程序
  • Ansible:迭代字典列表 - 循环与 with_items

    当尝试迭代字典列表时 使用循环与 with items 时 我得到不同的结果 我尝试过使用loop dict2items 该结构不是字典 它告诉了我很多信息 呵呵 并使用展平过滤器进行循环 这是字典列表 msg id id1 ip ip1
  • DNN 9.8 - EventLogController 已过时 - 有没有人有关于如何使用依赖注入方法来修复此错误的示例?

    有人可能有一个示例来替换 DNN 模块中旧的错误日志记录吗 我看过以下文章 https dnncommunity org forums aft 1527 https dnncommunity org forums aft 1527 有人在
  • Spring boot @RequestParam unix时间戳到LocalDateTime [重复]

    这个问题在这里已经有答案了 假设我的 RestController 中有 GetMapping public list RequestParam LocalDateTime date 我使用日期请求参数作为 unix 时间戳发出 GET 请
  • python 3.9 中的类型注释约束(`ValueRange`/`MinLen` 等)在哪里?

    看到 很棒的 新产品后Annotatedpython 3 9 中的类型注释 可变类型约束 我赶紧升级 以便可以检查它们 https docs python org 3 library typing html highlight valuer
  • 在 Swift 编程语言中隐藏文本字段的键盘

    我对 Objective C 的经验很少 我想使用 Swift 编程语言隐藏文本字段的键盘 我也尝试过这个 func textFieldShouldReturn textField UITextField gt Bool called wh
  • 使用final关键字声明一个List字段

    如果我在课堂上有以下声明Synapse是一个抽象类型 private final List
  • writeToFile 和 writeToURL 有什么区别?

    也许有人可以在这里解释一下或者发送给我正确的文档 我已经阅读了 IOS 文档 但仍然无法得到它 我什么时候使用 writeToURL 方法 也许问题出在我身上 如果除了我之外的其他人都明白这一点 但如果有人可以帮助我 我将非常感激 不同之处
  • 如何从大气噪声中获得随机数?

    我最近讨论了寻找一种生成真正随机数的方法 讨论最终讨论了使用大气噪声 有人这样做过吗 这个过程涉及什么 有人创建了一个返回从噪声中获得的随机数的网络服务吗 整个网站基于使用大气噪声生成的 真正随机 数字 他们有一个 API 如果您愿意 您可
  • 如何在 Python 中进行按位非运算?

    为了测试使用更基本的构建块 在我的例子中使用 Nand Or 和 And 构建 Xor 操作 我需要能够执行 Not 操作 内置的not似乎只用单个位来做到这一点 如果我做 x 0b1100 x not x 我应该得到0b0011但我只是得
  • sql查询获取已删除的记录

    你有一张桌子table1其中包含id列 即int 11 not null auto increment并从 1 开始 假设您有 10 000 条记录 可以看出最后一条记录的id是10000 一旦删除了 3 条记录 表中就有 9 997 条记
  • HttpWebRequest 的 URL 被特殊字符截断

    我需要调用的 Web 服务的 URL 包含一个包含自由格式文本的参数 我不知道为什么它是这样设计的 因为它是使用 POST 发送的 并且包含许多字段作为 POST 的一部分 但是 这给我带来了一个问题 对于井号和 等某些字符 URL 在遇到