Run two querties:
curl "http://localhost:8800/foo" --verbose
curl -X PUT "http://localhost:8800/foo" -d "{}" --verbose
See one o them working properly and another one failing with 405:
pzixe@ZPC MINGW64
$ curl "http://localhost:8800/foo" --verbose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying ::1:8800...
* Trying 127.0.0.1:8800...
* Connected to localhost (127.0.0.1) port 8800 (#0)
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0> GET /foo HTTP/1.1
> Host: localhost:8800
> User-Agent: curl/7.69.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< content-length: 0
< date: Tue, 19 Jan 2021 16:35:59 GMT
<
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Connection #0 to host localhost left intact
pzixe@ZPC MINGW64
$ curl -X PUT "http://localhost:8800/foo" -d "{}" --verbose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying ::1:8800...
* Trying 127.0.0.1:8800...
* Connected to localhost (127.0.0.1) port 8800 (#0)
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0> PUT /foo HTTP/1.1
> Host: localhost:8800
> User-Agent: curl/7.69.1
> Accept: */*
> Content-Length: 2
> Content-Type: application/x-www-form-urlencoded
>
} [2 bytes data]
* upload completely sent off: 2 out of 2 bytes
* Mark bundle as not supporting multiuse
< HTTP/1.1 405 Method Not Allowed
< content-length: 0
< date: Tue, 19 Jan 2021 16:36:04 GMT
<
100 2 0 0 100 2 0 9 --:--:-- --:--:-- --:--:-- 9
* Connection #0 to host localhost left intact
Now if you change paths to
App::new()
.my_route(
"/foo",
web::get().to(|| HttpResponse::Ok().finish()),
)
.my_route(
"/foo1",
web::put().to(|| HttpResponse::Ok().finish()),
)
It suddently starts to work:
pzixe@ZPC MINGW64
$ curl "http://localhost:8800/foo" --verbose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying ::1:8800...
* Trying 127.0.0.1:8800...
* Connected to localhost (127.0.0.1) port 8800 (#0)
> GET /foo HTTP/1.1
> Host: localhost:8800
> User-Agent: curl/7.69.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< content-length: 0
< date: Tue, 19 Jan 2021 16:42:11 GMT
<
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Connection #0 to host localhost left intact
pzixe@ZPC MINGW64
$ curl -X PUT "http://localhost:8800/foo1" -d "{}" --verbose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying ::1:8800...
* Trying 127.0.0.1:8800...
* Connected to localhost (127.0.0.1) port 8800 (#0)
> PUT /foo1 HTTP/1.1
> Host: localhost:8800
> User-Agent: curl/7.69.1
> Accept: */*
> Content-Length: 2
> Content-Type: application/x-www-form-urlencoded
>
} [2 bytes data]
* upload completely sent off: 2 out of 2 bytes
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< content-length: 0
< date: Tue, 19 Jan 2021 16:42:17 GMT
<
100 2 0 0 100 2 0 9 --:--:-- --:--:-- --:--:-- 9
* Connection #0 to host localhost left intact