Я новичок в вебе и хочу отправить данные из моего API в другой API, но мой API отправляет, а другой почему-то не получает
func main() {
r := gin.Default()
r.POST("/send-data", func(c *gin.Context) {
var token struct {
Api_key string `json:"accsestoken"`
}
var data struct {
Phone string `json:"phone"`
Amount float64 `json:"amount"`
}
if err := c.BindJSON(&data); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid JSON"})
return
}
token.Api_key = tools.Create_token(data.Phone, data.Amount)
local_id := uuid.New()
payload := map[string]interface{}{
"api_key": token.Api_key,
"phone": data.Phone,
"amount": data.Amount,
"local_id": local_id.String(),
}
res, err := json.Marshal(payload)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to prepare data"})
return
}
resp, err := http.Post("http://localhost:8000/api/trxs", "application/json", bytes.NewBuffer(res))
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to send data to target API"})
return
}
defer resp.Body.Close()
c.JSON(http.StatusOK, gin.H{"message": "Data sent successfully"})
})
r.Run(":3000")
}
Функция отправляющая данные:
r.POST("/api/trxs", func(c *gin.Context) {
var data struct {
Api_key string `json:"api_key"`
Phone string `json:"phone"`
Amount float64 `json:"amount"`
Local_id string `json:"local_id"`
}
if err := c.ShouldBindJSON(&data); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"unsuccess": false, "error": err.Error()})
return
}
fmt.Println(data)
// Возвращение данных клиенту
c.JSON(http.StatusOK, data)
})
r.Run(":8000")
эта функция получает данные, но выдает ошибку:
{
"error": "EOF",
"unsuccess": false
}
Когда я отправляю запрос из первой функции, я получаю:
{
"message": "Data sent successfully"
}
Но вторая функция выдаёт:
{
"error": "EOF",
"unsuccess": false
}