相关疑难解决方法(0)

在bash脚本中编码字符串的URL

我正在写一个bash脚本,我试图提交一个post变量,但是wget将它视为多个URL我相信因为它不是URLENCODED ...这是我的基本思想

MESSAGE='I am trying to post this information'
wget -O test.txt http://xxxxxxxxx.com/alert.php --post-data 'key=xxxx&message='$MESSAGE''
Run Code Online (Sandbox Code Playgroud)

我收到错误并且alert.php没有得到post变量加上它很难说

无法解决我无法解决我无法解决尝试..等等.

我上面的例子是一个简单的有点sudo示例,但我相信如果我可以对其进行url编码,它会通过,我甚至尝试过像:

MESSAGE='I am trying to post this information'
MESSAGE=$(php -r 'echo urlencode("'$MESSAGE'");')
Run Code Online (Sandbox Code Playgroud)

但PHP错误..任何想法?如何在没有php执行的情况下传递$ MESSAGE中的变量?

linux bash command-line wget urlencode

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

URL编码参数中的井号(#)在重定向时解码

我有两个服务器系统...一个托管应用程序,另一个托管身份验证/授权。当应用程序检测到用户尚未登录时,它将重定向到身份验证服务器,并将用户最初请求的URL作为参数传递,以便在身份验证之后,用户将被重定向回应用程序服务器到最初请求的确切网址。

但是,如果该原始URL包含#,则将执行整个例程。看来浏览器正在解码url编码的参数,因此,将#号之后的所有内容都放到了地板上。我已经在Chrome,Safari和Firefox上尝试过此操作。

例:

原始网址:

https://xxx.com/#/main/by-users?param1=53&param2=13&param3=39
Run Code Online (Sandbox Code Playgroud)

重定向网址:

https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%3A80%2F%23%2Fmain%2Fby-users%3Fparam1%3D53%26param2%3D13%26param3%3D39
Run Code Online (Sandbox Code Playgroud)

浏览器显示:

https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%2F#/main/by-users?param1=53&param2=13&param3=39
Run Code Online (Sandbox Code Playgroud)

如您所见,包括#和之后的所有内容均已解码。因此,服务器永远不会获得完整的“ returnURL”参数值。基本上就是

https://xxx.com/
Run Code Online (Sandbox Code Playgroud)

这一定是某个规范的一部分,尽管似乎应该疯狂地对已编码的#进行解码和处理,就好像它从来没有被编码过一样。但是如何解决这个问题?

谢谢。

redirect http hashtag

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

标签 统计

bash ×1

command-line ×1

hashtag ×1

http ×1

linux ×1

redirect ×1

urlencode ×1

wget ×1