From cad9668e4e8c2ef9dc93278ee28e47f5f4b345ca Mon Sep 17 00:00:00 2001 From: huangsimin Date: Wed, 21 Nov 2018 18:47:22 +0800 Subject: [PATCH] =?UTF-8?q?TODO:=20User-Agent=20=E5=85=88=E5=90=8E?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E7=9A=84=E9=97=AE=E9=A2=98=20=E5=92=8C=20?= =?UTF-8?q?=E5=B8=90=E5=8F=B7=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parse_curl.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/parse_curl.go b/parse_curl.go index 0bf89c3..2b40e06 100644 --- a/parse_curl.go +++ b/parse_curl.go @@ -124,12 +124,16 @@ func judgeAndParseOptions(u *CURL, soption string) { switch prefix := soption[0:2]; prefix { case "-H": parseHeader(u, soption) - case "--": - parseLongOption(u, soption) case "-X": matches := regexp.MustCompile("-X +(.+)").FindStringSubmatch(soption) method := strings.Trim(matches[1], "'") u.Method = method + case "-A": // User-Agent 先后顺序的问题 + parseHeader(u, soption) + case "-I": + u.Method = "HEAD" + case "--": + parseLongOption(u, soption) } } @@ -163,7 +167,8 @@ func parseLongOption(u *CURL, soption string) { case "data": parseBodyASCII(u, data) } - + case regexp.MustCompile("^--header").MatchString(soption): + parseHeader(u, soption) } } @@ -220,7 +225,6 @@ func parseBodyBinary(u *CURL, data string) { } func parseHeader(u *CURL, soption string) { - matches := regexp.MustCompile(`'([^:]+): ([^']+)'`).FindAllStringSubmatch(soption, 1)[0] key := matches[1] value := matches[2]