scala 提供 http get put 数据服务接口 server端
时间: 2024-05-14 21:12:51 浏览: 16
以下是使用 Scala 提供 HTTP GET 和 PUT 数据服务接口的示例:
GET 请求:
```scala
import java.net.InetSocketAddress
import com.sun.net.httpserver.{HttpExchange, HttpHandler, HttpServer}
object HttpServerDemo {
def main(args: Array[String]): Unit = {
val server = HttpServer.create(new InetSocketAddress(8080), 0)
server.createContext("/data", new DataHandler())
server.setExecutor(null)
server.start()
}
}
class DataHandler extends HttpHandler {
override def handle(exchange: HttpExchange): Unit = {
val response = "This is a GET request."
exchange.sendResponseHeaders(200, response.length)
val os = exchange.getResponseBody
os.write(response.getBytes)
os.close()
}
}
```
PUT 请求:
```scala
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.OutputStream
import java.net.InetSocketAddress
import com.sun.net.httpserver.{HttpExchange, HttpHandler, HttpServer}
object HttpServerDemo {
def main(args: Array[String]): Unit = {
val server = HttpServer.create(new InetSocketAddress(8080), 0)
server.createContext("/data", new DataHandler())
server.setExecutor(null)
server.start()
}
}
class DataHandler extends HttpHandler {
override def handle(exchange: HttpExchange): Unit = {
if (exchange.getRequestMethod.equalsIgnoreCase("PUT")) {
val is = exchange.getRequestBody
val br = new BufferedReader(new InputStreamReader(is))
var line = ""
var result = ""
while (line != null) {
line = br.readLine()
if (line != null) {
result += line
}
}
is.close()
val response = "This is a PUT request with data: " + result
exchange.sendResponseHeaders(200, response.length)
val os = exchange.getResponseBody
os.write(response.getBytes)
os.close()
} else {
val response = "Only PUT requests are allowed."
exchange.sendResponseHeaders(405, response.length)
val os = exchange.getResponseBody
os.write(response.getBytes)
os.close()
}
}
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)