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/"}%

Весь запрос cURL и ответ Подробный

Но когда я пытаюсь сделать то же самое с клиентом DHC rest, я также пытался с расширенным клиентом rest, не получая ответа.

Тот же запрос через DHC

Редактировать 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 - нет. И ваш сервер, кажется, принимает текст, а не файлы.

Другие вопросы по тегам