@@ -93,74 +93,6 @@ func HttpProxyGet(rawurl string, header http.Header, proxyURL string) (io.ReadCl
9393 return nil , err
9494}
9595
96- // http.Client发送请求,此方式是封装的http.NewRequest方法
97- //
98- // method: 请求方法:POST、GET、PUT、DELETE
99- // urlText: 请求地址
100- // contentType: 请求数据类型,首字母简写,如:axwfu
101- // params: 请求参数
102- func HttpClient (method , urlText , contentType string , params map [string ]string ) (* http.Response , error ) {
103- if urlText == "" {
104- panic (errors .New ("url不能为空" ))
105- }
106- client := http.Client {Timeout : 30 * time .Second }
107-
108- var resp * http.Response
109- var err error
110-
111- method = strings .ToUpper (method )
112- if method == "POST" {
113- if params != nil {
114- switch contentType {
115- case "axwfu" : // application/x-www-form-urlencoded
116- data := make (url.Values )
117- //data := url.Values{}
118- for k , v := range params {
119- data [k ] = []string {v }
120- //data.Set(k, v)
121- }
122- resp , err = client .PostForm (urlText , data )
123- case "mf" : // multipart/form-data
124- data := url.Values {}
125- for k , v := range params {
126- data .Set (k , v )
127- }
128- resp , err = client .PostForm (urlText , data )
129- case "tx" : // text/xml
130- jsonStr , err := json .Marshal (params )
131- if err != nil {
132- return nil , err
133- }
134- data := strings .ReplaceAll (string (jsonStr ), " " , "+" )
135- resp , err = client .Post (urlText , contentType , bytes .NewBuffer ([]byte (data )))
136- default : // application/json
137- jsonStr , err := json .Marshal (params )
138- if err != nil {
139- return nil , err
140- }
141- resp , err = client .Post (urlText , "application/json" , bytes .NewBuffer (jsonStr ))
142- }
143- } else {
144- resp , err = client .Post (urlText , contentType , nil )
145- }
146- } else {
147- if params != nil {
148- urlText = urlText + "?"
149- for key , value := range params {
150- urlText += key + "=" + value + "&"
151- }
152- }
153- // url编码
154- //urlText=urlText.QueryEscape(urlText)
155- if method == "HEAD" {
156- resp , err = client .Head (urlText )
157- } else {
158- resp , err = client .Get (urlText )
159- }
160- }
161- return resp , err
162- }
163-
16496// http.NewRequest发送请求
16597//
16698// method: 请求方法:POST、GET、PUT、DELETE
@@ -173,6 +105,7 @@ func HttpRequest(method, urlText, contentType string, params, header map[string]
173105 panic (errors .New ("url不能为空" ))
174106 }
175107 method = strings .ToUpper (method )
108+
176109 var req * http.Request
177110 var err error
178111 var body io.Reader
@@ -181,10 +114,8 @@ func HttpRequest(method, urlText, contentType string, params, header map[string]
181114 switch contentType {
182115 case "axwfu" : // application/x-www-form-urlencoded;
183116 data := make (url.Values )
184- //data := url.Values{}
185117 for k , v := range params {
186118 data [k ] = []string {v }
187- //data.Set(k, v)
188119 }
189120 body = strings .NewReader (data .Encode ())
190121 contentType = "application/x-www-form-urlencoded; charset=utf-8"
@@ -224,14 +155,16 @@ func HttpRequest(method, urlText, contentType string, params, header map[string]
224155 if err != nil {
225156 return nil , err
226157 }
227-
228158 if header != nil {
229159 for key , value := range header {
230160 req .Header .Add (key , value )
231161 }
232162 }
233- if req .Header .Get ("content-type" ) == "" {
234- req .Header .Add ("content-type" , contentType )
163+ if req .Header .Get ("Content-Type" ) == "" && method == "POST" {
164+ req .Header .Set ("Content-Type" , contentType )
165+ }
166+ if req .Header .Get ("User-Agent" ) == "" {
167+ req .Header .Set ("User-Agent" , UserAgent )
235168 }
236169 // dump出远程服务器返回的信息,调试请求
237170 //bd, err := httputil.DumpRequest(req, true)
0 commit comments