cURL работает, но ни один из остальных клиентов с Go Sebserver
Наличие простого GO WebServer, который принимает изображение как часть запроса POST.
Фрагмент кода - запрос сопоставлен с этой функцией
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))
}
}
Когда я нажимаю на URL с помощью cURL, как показано ниже, ответ 200 OK (как и ожидалось)
curl -X POST -d @ "Снимок экрана 2015-11-15 в 6.09.58 pm.png" http://localhost:8000/image/agent123/property --header "Content-Type: image / png" - заголовок "X-User-Agent:agent-php" ответ -> {"fileURL": " http://testing.com/"}%
Но когда я пытаюсь сделать то же самое с клиентом DHC rest, я также пытался с расширенным клиентом rest, не получая ответа.
Редактировать 1: Запрос достигает сервера при запуске от остальных клиентов
1 ответ
Я не верю, что вы делаете то, что думаете.
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"
Не будет отправлять файл "Снимок экрана 2015-11-15 в 6.09.58 pm.png", он должен отправить буквальный текст в качестве тела. Вы, вероятно, хотите "-d @'Screen Shot 2015-11-15 в 6.09.58 pm.png'".
Какой тогда ваш "хороший" результат не совсем хороший, так что вам нужно выяснить, что это за ошибка на принимающей стороне на сервере. Поскольку клиент GUI, который вы используете, вероятно, отправляет файл, тогда как cURL - нет. И ваш сервер, кажется, принимает текст, а не файлы.