Post cURL可以工作,但是没有一个rest客户端使用Go服务器
拥有一个简单的GO Web服务器,它接受图像作为POST请求的一部分 代码段-请求映射到此函数Post cURL可以工作,但是没有一个rest客户端使用Go服务器,post,curl,go,httpserver,dhclient,Post,Curl,Go,Httpserver,Dhclient,拥有一个简单的GO Web服务器,它接受图像作为POST请求的一部分 代码段-请求映射到此函数 func UploadFile(w http.ResponseWriter, r *http.Request, p httprouter.Params) { successResponse := models.HTTPResponse { FileURL:"http://testing.com", } WrapResponse(
func UploadFile(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
successResponse := models.HTTPResponse {
FileURL:"http://testing.com",
}
WrapResponse(w, successResponse, http.StatusOK)
}
响应编写器函数
func WrapResponse(writer http.ResponseWriter, content interface{}, status int) {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(status)
// Content is a struct Response { fileURL string }
responseJson, err := json.Marshal(content)
CheckError(err, "Error wrapping response")
writer.Write(responseJson)
}
func CheckError(err error, msg string) {
if err != nil {
panic(fmt.Sprintf("%s : %s", msg, err))
}
}
当我使用下面的cURL点击URL时,响应是200 OK(如预期的那样)
curl-X POST-d@“2015-11-15屏幕截图,下午6.09.58,巴布亚新几内亚”
--标题“内容类型:图像/png”
--标题“X-User-Agent:Agent php”响应-->{“fileURL”:“}%
整个cURL请求和响应
但是当我从DHC rest客户端尝试同样的方法时,我也尝试过使用高级rest客户端,但没有得到响应
编辑1:当从rest客户端触发请求时,请求确实到达服务器我不相信你在做你认为你在做的事
curl -X POST -d "Screen Shot 2015-11-15 at 6.09.58 pm.png" http://localhost:8000/image/agent123/property --header "Content-Type:image/png" --header "X-User-Agent:agent-php"
将不会发送文件“Screen Shot 2015-11-15 at 6.09.58 pm.png”,而是将文本作为正文发送。你可能想在6.09.58 pm.png看到“-d”的2015-11-15屏幕截图
那么你的“好”结果就不是很好了,所以你必须弄清楚服务器接收端的bug是什么。因为您正在使用的GUI客户端可能正在发送文件,而cURL则不是。而且您的后端似乎接受文本,而不是文件 有什么问题?你的密码在哪里?@AmitKumarGupta请告诉我你还需要什么。我认为自从cURL工作以来,rest客户机添加了一些额外的头。我不认为代码有任何问题,这就是为什么不粘贴代码的原因。尝试运行curl作为verbose with--verbose以查看它到底发送了什么。curl-X POST-d@“屏幕截图2015-11-15于6.09.58 pm.png”--header“内容类型:image/png”--header“X-User-Agent:Agent php”{“fileURL”:“}%@Itachi我仍然不相信它正在做你认为它正在做的事情,尽管如此,如果你想要调试帮助,你必须提供路由/接收代码。添加了请求处理功能。这些信息足够吗?