【问题标题】:Curl call from Terminal and Shellscript is diffrent?来自终端和 Shell 脚本的卷曲调用不同吗?
【发布时间】:2017-09-18 11:45:59
【问题描述】:

我从终端调用相同的 curl 命令一次,从 Shellscript 调用一次 - 但结果不同:

#!/usr/bin/env bash

url="dev.test.ch"
http="http://"
test="192.168.178.107"

curl -H "'Host: $url'" "$http$test"
echo "'Host: $url'" "$http$test"

curl -H 'Host: dev.test.ch' http://192.168.178.107

一旦我获得 NGINX 起始页(来自 Shellscript)和正确的响应(来自我的应用程序的 HTML 页面)

有什么想法吗?

【问题讨论】:

    标签: shell curl nginx terminal


    【解决方案1】:

    愚蠢的我-

    curl -H 'Host: '$newline "$http$test"
    

    大括号是问题所在。

    【讨论】:

      【解决方案2】:

      您可以使用curl-v 选项来查看发送到服务器的确切HTTP 请求。在您的脚本中 curl 添加 'Host 标头的问题。

      用这行curl -H "'Host: $url'" "$http$test"它发送

      > GET http://192.168.178.107/ HTTP/1.1
      > Host: 192.168.178.107
      > User-Agent: curl/7.49.1
      > Accept: */*
      > 'Host: dev.test.ch'
      

      如果您删除单个 qoutes curl -v -H "Host: $url" "$http$test",它将发送正确的请求:

      > GET http://192.168.178.107/ HTTP/1.1
      > Host: dev.test.ch
      > User-Agent: curl/7.49.1
      > Accept: */*
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多