通过Curl 对url进行encode操作

2023-05-16

最近做项目的时候,通过 Gflags Reload 时候 发现对于某些value中包含=%中文等字符的支持不够好,value被截断了。

经过分析后,发现程序对url切分是用=&为标准的,如果value中带有这样的特殊字符,必然导致截断。

解决的方法也很简单,框架默认对value进行进行了urldecode的操作,所以在进行请求的时候,只需要对value进行urlencode就好。

有了思路后,就好解决了。因为希望依赖不多,就避免采用了python php perl之类的语言。在gist找到一个通过shell来操作的。

https://gist.github.com/cdown/1163649/8a35c36fdd24b373788a7057ed483a5bcd8cd43e

这个方案能够解决特殊字符的问题,但对中文的支持有问题。

于是用搜索到了,https://blog.longwin.com.tw/2017/12/bash-shell-curl-send-urlencode-args-2017/

 

这个是采用curl命令,考虑到我们reload也是curl来的,就copy来了,但文章的代码有点问题,于是改写如下

 


function urlencode() {
    local data
    if [[ $# != 1 ]]; then
        echo "Usage: $0 string-to-urlencode"
        return 1
    fi
    data="$(curl -s -o /dev/null -w %{url_effective} --get --data-urlencode "$1" "")"
    if [[ $? == 0 ]]; then
        echo "${data##/?}"
    fi
    return 0  

 

https://gist.github.com/westfly/ed7e25ee4353751d94132f92837a7074

 

希望大家有用。

转载于:https://www.cnblogs.com/westfly/p/10178367.html

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

通过Curl 对url进行encode操作 的相关文章

  • 无法加载 php_curl

    我已经在WindowsXp上安装了php5 2 13 apache2 2 15 将C php添加到PATH ssystem变量中 我无法启用卷曲扩展 我配置了extension dir并删除了 在 php ini 中形成 php curl
  • 使用 Asp.net 中的路由在 URL 中添加语言名称

    如何使用路由在 URL 中添加语言名称 我的网站运行于http localhost 41213 default aspxURL 成功 但该网站是多语言的 我的客户希望根据他想要的语言运行该网站http localhost 41213 en
  • 如何从 .NET 程序打开 Web 浏览器? Process.Start() 不起作用?

    我有一个 URL 我想在默认浏览器中启动它 我尝试过两种方法 Process Start http stackoverflow com 以及本节中详细介绍的一个其他问题 https stackoverflow com questions 8
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • 找不到 CURL NSS 客户端证书 myCert

    我正在尝试使用curl 访问https 地址 将我的证书传递给它并使用我自己的信任库 我们有自己的CA 验证服务器的证书 我现在以 root 身份运行 curl v cert home cdfoote myCertificate pem m
  • htaccess 正则表达式目录到变量

    我需要对某些 URL 从目录到变量进行 301 重定向 EXAMPLE http domain com es stackoverflow gt http domain com stackoverflow lang es http domai
  • 读取用 php 分块的范围块

    我有一个输入字段 可以在其中粘贴下载网址 之后 我使用 AJAX 请求来获取文件信息 例如 headerinfo 内容长度 mime 类型 如果我使用curl 接受范围 然后 我开始连续循环 xhr2 请求 其中包含我的 php 文件的范围
  • IPV6 Curl POST 请求

    在 IPV6 中 如何使用 IPV6 地址和端口号构建 CURL POST http 请求 任何类型的线程都将受到赞赏 尝试构建如下请求 gt curl interface http 2001 0 db8 1111 0 0 0 11 809
  • 本地主机:8080 是什么意思? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有什么区别本地主机 网络 vs 本地主机 8080 web TCP IP 连接始终与 IP 地址建立 您可以将 IP 地址视为某台计算机的
  • Django:在表单中初始化小部件时获取当前网址

    当我初始化表单以在其中找到我想要检查的字符串时 我想获取当前的 url 根据这个字符串 我想更改放入单选小部件中的数据 我想根据 url 显示不同的 radioselect 选项 class FunctionForm forms Model
  • 在 scrapy 中将基本 url 与结果 href 结合起来

    下面是我的蜘蛛代码 class Blurb2Spider BaseSpider name blurb2 allowed domains www domain com def start requests self yield self ma
  • 我如何在 ANSI C 中实现类似于 Objective-C @encode() 编译器指令的东西?

    encode 指令返回一个 const char 它是传入的数据类型的各个元素的编码类型描述符 示例如下 struct test int ti char tc printf s encode struct test returns test
  • 使用javascript向url添加哈希而不滚动页面?

    在不滚动页面的情况下向 url 添加哈希 使用 JavaScript 我打开页面 我向下滚动 我单击添加哈希的链接 可能带有值 test 示例 http www example com test http www example com t
  • 如何隐藏 URL 中的 ID

    我以前在 Stack Overflow 上见过这类问题 但没有一个真正有帮助 我也用谷歌搜索过 但没有骰子 我想知道如果用户单击选项卡本身是否可以隐藏 URL 中的 ID 这是网页 www planet nu dev new experia
  • 使用网络摄像头捕获视频并使用 C# 保存为 avi [重复]

    这个问题在这里已经有答案了 可能的重复 网络摄像头捕获并转换为 avi https stackoverflow com questions 2807040 webcam capture and convert to avi 有没有办法使用
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 在没有 validate-plugin 的情况下使用 jQuery 验证 url?

    我需要验证一个网址variable使用 jQuery 但不能使用 validate plugin 有没有一种简单的方法可以做到这一点 您可以使用与验证插件相同的正则表达式 已于 2015 年 5 月 23 日更新为最新正则表达式 funct
  • PHP curl exec 在 php 脚本相同域上失败

    我使用 php curl 从同一域 url 中的 php 脚本获取内容 但我收到curl exec 错误 curl 错误代码为 28 或操作超时 经过几天的调试 我发现它可以在 htm 等非脚本页面上工作 但不能在 php 上工作 如果 u
  • URL 中的 %2C 是什么?

    在 URL 中 什么是 2C编码的含义及其用途是什么 查看http www asciitable com http www asciitable com 看着那 这Hx 十六进制 列 2C映射到 任何不寻常的编码都可以通过这种方式检查 Hx
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati

随机推荐

  • K8S镜像删除及环境清理

    环境清理 删除所有容器 sudo docker rm f sudo docker ps qa 删除 var etcd目录 sudo rm rf var etcd 删除 var lib kubelet 目录 xff0c 删除前先卸载 for
  • HTTP认证之摘要认证——Digest(二)

    导航 HTTP认证之基本认证 Basic xff08 一 xff09 HTTP认证之基本认证 Basic xff08 二 xff09 HTTP认证之摘要认证 Digest xff08 一 xff09 HTTP认证之摘要认证 Digest x
  • 关于AD10如何输出自己想要的BOM表

    新年新开始 xff0c 过完年来上班 xff0c 脑子里面的东西很多又忘光了 xff0c 索性写下来做个备忘录 xff0c 今天为了输出一个自己想要的BOM表 xff0c 结果发现去年会弄的 xff0c 但是现在尴尬的又忘了怎么弄了 xff
  • authorization权限控制_shiro入门学习--授权(Authorization)|筑基初期

    写在前面 经过前面的学习 xff0c 我们了解了shiro中的认证流程 xff0c 并且学会了如何通过自定义Realm实现应用程序的用户认证 在这篇文章当中 xff0c 我们将学习shiro中的授权流程 授权概述 这里的授权指的是授予某一系
  • Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(二)

    摘要 上一篇Spring Boot 43 Spring Security 43 JWT 实现 RESTful Api 认证 xff08 一 xff09 我们已经sql教程 实现了基本的登录和token认证接口 xff0c 但是这里有个问题
  • vmware vsphere各版本差别,及各套件差别

    最近要开始全面支持虚拟化了 xff0c 客户私有云环境用的多的为vmware vsphere xff0c 特地恶补下vmware vsphere的各个差别 首先是vSphere xff0c ESXi和vCenter 的区别 ESXi vSp
  • 第五周课程总结&试验报告(三)

    第五周课程总结 xff1a 一 xff1a String类 1 xff1a 实例化String对象 xff0c String可以采取直接赋值的方式进行操作 xff1b 2 xff1a 61 61 可以用来进行内容的比较 xff0c 但是单纯
  • CSS3 选择器

    CSS3 选择器 在 CSS 中 xff0c 选择器是一种模式 xff0c 用于选择需要添加样式的元素 34 CSS 34 列指示该属性是在哪个 CSS 版本中定义的 xff08 CSS1 CSS2 还是 CSS3 xff09 选择器例子例
  • JavaScript中使用typeof运算符需要注意的几个坑

    typeof是一个运算符 xff0c 它对操作数返回的结果是一个字符串 xff0c 有6种 只针对ES xff0c 不包含HOST环境对象 1 39 undefined 39 2 39 boolean 39 3 39 string 39 4
  • unity视频教程

    英雄联盟教程 http pan baidu com s 1i3rkMS9 密码 bv6r https pan baidu com share link shareid 61 2589856556 amp uk 61 371904234 li
  • 相册列表 鼠标悬停显示照片介绍

    lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 01 Transitional EN 34 34 http www w3 org TR html4 loose dtd 34 gt lt html gt lt
  • 图书管理系统(毕业论文)

    毕 业 设 计 论 文 题 目 xff1a 图书管理系统 院 系 xff1a 计算机学院 专 业 xff1a 软件技术 姓 名 xff1a XXX 指导教师 xff1a XX 2017年 10 月 23 日 1 引言 5 2 相关技术突破
  • C#中定义数组--字符串及数组操作

    一 一维 xff1a int numbers 61 new int 1 2 3 4 5 6 不定长 int numbers 61 new int 3 1 2 3 定长 二 多维 int numbers 61 new int 1 2 3 1
  • 迭代器分类

    输入迭代器 读 xff0c 不能写 xff1b 只支持自增运算 istream iterator 61 61 61 43 43 gt 输出迭代器 写 xff0c 不能读 xff1b 只支持自增运算 ostream iterator 43 4
  • VC++中隐藏代码

    1 引言 在VS编辑器中可以对类中的方法 注释等内容进行隐藏 xff0c 单击左侧的 号即可完成隐藏 xff0c 隐藏后变为 43 xff0c 单击 43 号可以将隐藏的代码展开 2 隐藏任意代码 如果想在编辑器中隐藏任意代码段 xff0c
  • 常见签名算法之SHA256withRSA

    概述 在https blog csdn net chinoukin article details 100934995章节中 xff0c 我介绍了用Hmac算法用于签名算法中的方法 xff0c 本章节中将对常见的签名算法 SHA256wit
  • httpclient4封装类与HttpParser封装类

    httpclient4封装类与HttpParser封装类 最近工作中需要做一个爬虫去抓取指定页面的一些内容 xff0c 准备使用HttpParser来解析页面结构 xff0c 顺便看了一下httpclient4 xff0c 可以将它们配合使
  • 【Linux操作系统分析】进程——进程切换,进程的创建和撤销

    1 进程 进程是程序执行时的一个实例 xff0c 可以把它看作充分描述程序已经执行到何种程度的数据结构的汇集 从内核的观点看 xff0c 进程的目的是担当分配系统资源 xff08 CPU时间 xff0c 内存等 xff09 的实体 xff0
  • C++中的.和::和:和->的区别

    在学习C 43 43 的过程中我们经常会用到 和 和 xff1a 和 gt xff0c 在此整理一下这些常用符号的区别 1 A B则A为对象或者结构体 xff1b 2 A gt B则A为指针 xff0c gt 是成员提取 xff0c A g
  • 通过Curl 对url进行encode操作

    最近做项目的时候 xff0c 通过 Gflags Reload 时候 发现对于某些value中包含 61 中文等字符的支持不够好 xff0c value被截断了 经过分析后 xff0c 发现程序对url切分是用 61 amp 为标准的 xf