Javascript 为什么我的Go服务器不能阅读Swift post?

Javascript 为什么我的Go服务器不能阅读Swift post?,javascript,swift,http,go,Javascript,Swift,Http,Go,我一直在尝试使用Swift打印出一个移动应用程序并发送HTTP帖子,我可以使用javascript和express.js登录它。但当使用Go创建的服务器时,它会给我: Get "http://192.121.1.397:8080": dial tcp http://192.121.1.397:8080: i/o timeout exit status 1 下面您可以看到所有3种语言的代码: 斯威夫特: import Foundation class Service: N

我一直在尝试使用Swift打印出一个移动应用程序并发送HTTP帖子,我可以使用javascript和express.js登录它。但当使用Go创建的服务器时,它会给我:

Get "http://192.121.1.397:8080": dial tcp http://192.121.1.397:8080: i/o timeout
exit status 1
下面您可以看到所有3种语言的代码:

斯威夫特:

import Foundation


class Service: NSObject {
    static let shared = Service()
    
    func fetch(completion: @escaping (Result<[Post], Error>) -> ()){
        guard let url = URL(string: "http://192.121.1.397:8080" ) else{return}
        
        URLSession.shared.dataTask(with: url) { (data, resp, err) in
            if let err = err {
                print(err)
                return
            }
            
            guard let data = data else {return}
            
            do{
                let posts = try JSONDecoder().decode([Post].self, from:data)
                completion(.success(posts))
            } catch{
                completion(.failure(error))
            }
        }
    }
    func post(title: String, body: String, completion: @escaping (Error?) -> ())  {
        guard let url = URL(string: "http://192.168.1.148:8080") else{return}
        var urlReq = URLRequest(url:url)
        urlReq.httpMethod = "POST"
        
        let params = ["title": title, "postBody": body]
        
        do{
            let data = try JSONSerialization.data(withJSONObject: params, options: .init())
            
            urlReq.httpBody = data
            urlReq.setValue("application/json", forHTTPHeaderField: "Content-Type")
            
            URLSession.shared.dataTask(with: urlReq){(data, resp, err) in
                guard let data = data else{return}
                completion(nil)
            }.resume()
        } catch{
            completion(error)
        }
    }
}
戈朗代码:

package main

import (
    "fmt"
    "os"
    "io/ioutil"
    "log"
    "net/http"
)


func main() {
    http.HandleFunc("/", HelloServer) // deal
    http.ListenAndServe(":8080", nil)
   
}

func HelloServer(w http.ResponseWriter, r *http.Request) {
    // fmt.Fprintf(w, "Hello, lol") // post

    resp, err := http.Get("http://http://192.121.1.397:8080") //https://api.github.com/repos/dotcloud/docker

if err != nil{
    fmt.Println("now")
    log.Fatal(err)
}

defer resp.Body.Close()

body, err := ioutil.ReadAll(resp.Body)

if err != nil{
    fmt.Println("here")
    log.Fatal(err)
}

_, err = os.Stdout.Write(body)
// _, err = fmt.Println(string(body))

if err != nil{
    fmt.Println("There")
    log.Fatal(err)
}
}
可以阅读文章的Javascript服务器:

const express = require('express')
const app = express()
var bodyParser = require('body-parser')
const port = process.env.PORT || 8080
;
app.use(bodyParser.urlencoded({ extended: true }))

// parse application/json
app.use(bodyParser.json())


app.get('/', (req, res) => {
    res.send({ express: 'YOUR EXPRESS BACKEND IS CONNECTED TO REACT' })
   
}
)


app.post('/', function(req, res) {
    var parsedBody = req.body;
    console.log(parsedBody)
    res.send({ express: 'YOUR EXPRESS BACKEND IS CONNECTED TO REACT' })

 });




app.listen(port, () => console.log(`Example app listening on port ${port}!`))
谢谢你抽出时间

。。。。http.Get(“http://http://192.121.1.397:8080))

这不是有效的URL。它只能是
http://192.121.1.397:8080


除此之外,我真的不确定你在做什么。为什么要尝试在同一服务器的处理程序中访问服务器?这也不同于您在nodejs中所做的,在nodejs中,您只需发送一个简单的响应。

这是一个不同的ip地址,我刚刚更改了它,以回答这个问题,在这种情况下,您将如何构建它?因为我也试着把它全部插入到主函数中,但仍然没有result@CamilleBasbous当前位置我不确定你一开始想要实现什么。但是如果你想有一个简单的处理程序的例子,类似于你在nodejs中所做的,从文档中可以看到。我只想能够读取Swift用Go服务器发送的数据(正文、标题)。简言之,我想做的就是这样。已经完成了。使用GO的JS
const express = require('express')
const app = express()
var bodyParser = require('body-parser')
const port = process.env.PORT || 8080
;
app.use(bodyParser.urlencoded({ extended: true }))

// parse application/json
app.use(bodyParser.json())


app.get('/', (req, res) => {
    res.send({ express: 'YOUR EXPRESS BACKEND IS CONNECTED TO REACT' })
   
}
)


app.post('/', function(req, res) {
    var parsedBody = req.body;
    console.log(parsedBody)
    res.send({ express: 'YOUR EXPRESS BACKEND IS CONNECTED TO REACT' })

 });




app.listen(port, () => console.log(`Example app listening on port ${port}!`))