청크 전송 인코딩 하이퍼 응답을 보내는 방법은 무엇입니까?

Omgpopstar

특정 수의 바이트와 청크로 하이퍼 응답을 보내려고합니다. 일반적인 청크 응답을 생성하거나 전송 인코딩 헤더를 설정하는 방법을 잃었습니다. 현재 감가 상각되는 하이퍼 용 httpWriter / chunkedWriter가있는 것 같습니다.

이것은 내 시도이지만 전송 인코딩 헤더가 설정되지 않았으며 이것이 청크 응답을 갖는 올바른 방법이라고 생각하지 않습니다.

let chunked_body = "5\r\nhello\r\n5\r\n worl\r\n1\r\nd\r\n0\r\n\r\n";
let mut resp: hyper::Response<Body> = Response::new(Body::from(chunked_body));
resp.headers_mut().insert(TRANSFER_ENCODING, HeaderValue::from_static("Chunked"));
Ok(resp)
피터 홀

청크 전송 인코딩은 HTTP / 2의 일부가 아니라 HTTP / 1.1의 일부입니다 . 핸들러가 청크 스트림으로 응답하면 Hyper는 클라이언트가 지원하는 HTTP 버전에 따라 "올바른 작업"을 수행합니다.

예를 들어 다음은 HTTP / 1.1에서 청크 응답을 보내지 만 클라이언트가 HTTP / 2를 지원하는 경우 데이터 프레임을 사용합니다.

async fn handle(_req: Request<Body>) -> Result<Response<Body>, Infallible> {
    let chunked_body = vec!["Hello", ", ", "worl", "d", "!"];
    let stream = stream::iter(chunked_body.into_iter().map(Result::<_, Infallible>::Ok));
    let body = Body::wrap_stream(stream);
    Ok(Response::new(body))
}

이 응답의 헤더 (클라이언트에서 HTTP / 1.1을 강제하는 경우)는 다음과 같습니다.

HTTP/1.1 200 OK
transfer-encoding: chunked

HTTP / 1.1 만 지원하려는 경우 Server빌더에서 Builder::http1_only(true).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

전송 인코딩이 청크 될 때 HttpsUrlconnection을 사용하여 응답을 읽는 방법

분류에서Dev

이전 요청 수에 도달 한 후 다른 응답 (동일한 URL 및 요청)을 보내도록 wiremock을 구성하는 방법은 무엇입니까?

분류에서Dev

EmberJs에서 Ajax 요청의 응답을 모델에 바인딩하는 방법은 무엇입니까?

분류에서Dev

http 요청을 만들고 Elm 0.17에서 구체적인 유형에 대한 응답을 디코딩하는 방법은 무엇입니까?

분류에서Dev

퍼센트 인코딩 URL에 세미콜론이 포함 된 파이썬 요청을 방지하는 방법은 무엇입니까?

분류에서Dev

서블릿 응답을 base64로 인코딩하는 방법은 무엇입니까?

분류에서Dev

Libre Office에서 URL 인코딩 하이퍼 링크를 설정하는 방법은 무엇입니까?

분류에서Dev

이메일 첨부 파일의 콘텐츠 전송 인코딩을 변경하는 방법은 무엇입니까?

분류에서Dev

NodeJS-nodeJS 서버에 청크 전송이 아닌 전송을 알리는 방법은 무엇입니까? Ajax가받을 수 있도록

분류에서Dev

응답없이 통계 요청을하는 방법은 무엇입니까?

분류에서Dev

.net의 코드 외부에서 요청 인코딩을 제어하는 방법은 무엇입니까?

분류에서Dev

Nest.js로 보내기 전에 응답 형식을 지정하는 방법은 무엇입니까?

분류에서Dev

요청 예외 처리를 구성하고 200 응답을 확인하는 방법은 무엇입니까?

분류에서Dev

Android에서 스트리밍하는 동안 MediaCodec 인코딩 비트 전송률을 즉시 변경하는 방법은 무엇입니까?

분류에서Dev

인코딩 된 값을 디코딩하는 방법은 무엇입니까?

분류에서Dev

인코딩 된 값을 디코딩하는 방법은 무엇입니까?

분류에서Dev

Electron : 메인 프로세스에서 모든 요청 응답을 포착하는 방법은 무엇입니까?

분류에서Dev

Spring 5 Webclient로 원시 HTTP 요청 및 HTTP 응답을 인쇄하는 방법은 무엇입니까?

분류에서Dev

구독하기 전에 다른 요청으로 http 응답을 반복하여 초기 응답을 확장하는 방법은 무엇입니까?

분류에서Dev

http 응답의 "청크"를 저장하는 방법은 무엇입니까?

분류에서Dev

Capybara Rspec에서 Ajax 요청이 전송되었는지 확인하는 방법은 무엇입니까?

분류에서Dev

응답이 전송되기 전에 django보기에서 JSON을 재구성하는 방법은 무엇입니까?

분류에서Dev

URL 안전을 위해 해시를 인코딩하고 줄이는 방법은 무엇입니까?

분류에서Dev

FFMPEG에서 특정 메타 데이터 버전을 인코딩하는 방법은 무엇입니까?

분류에서Dev

래칫을 사용하여 단일 웹 소켓 전송 요청을 통해 객체 배열을 보내는 방법은 무엇입니까?

분류에서Dev

ajax 요청을 ajax 응답과 병합하는 방법은 무엇입니까?

분류에서Dev

요청을 보내고 응답을 진행하고 클라이언트에게 다시 보내는 방법은 무엇입니까?

분류에서Dev

템플릿을 전송하는 방법은 무엇입니까?

분류에서Dev

템플릿을 전송하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    전송 인코딩이 청크 될 때 HttpsUrlconnection을 사용하여 응답을 읽는 방법

  2. 2

    이전 요청 수에 도달 한 후 다른 응답 (동일한 URL 및 요청)을 보내도록 wiremock을 구성하는 방법은 무엇입니까?

  3. 3

    EmberJs에서 Ajax 요청의 응답을 모델에 바인딩하는 방법은 무엇입니까?

  4. 4

    http 요청을 만들고 Elm 0.17에서 구체적인 유형에 대한 응답을 디코딩하는 방법은 무엇입니까?

  5. 5

    퍼센트 인코딩 URL에 세미콜론이 포함 된 파이썬 요청을 방지하는 방법은 무엇입니까?

  6. 6

    서블릿 응답을 base64로 인코딩하는 방법은 무엇입니까?

  7. 7

    Libre Office에서 URL 인코딩 하이퍼 링크를 설정하는 방법은 무엇입니까?

  8. 8

    이메일 첨부 파일의 콘텐츠 전송 인코딩을 변경하는 방법은 무엇입니까?

  9. 9

    NodeJS-nodeJS 서버에 청크 전송이 아닌 전송을 알리는 방법은 무엇입니까? Ajax가받을 수 있도록

  10. 10

    응답없이 통계 요청을하는 방법은 무엇입니까?

  11. 11

    .net의 코드 외부에서 요청 인코딩을 제어하는 방법은 무엇입니까?

  12. 12

    Nest.js로 보내기 전에 응답 형식을 지정하는 방법은 무엇입니까?

  13. 13

    요청 예외 처리를 구성하고 200 응답을 확인하는 방법은 무엇입니까?

  14. 14

    Android에서 스트리밍하는 동안 MediaCodec 인코딩 비트 전송률을 즉시 변경하는 방법은 무엇입니까?

  15. 15

    인코딩 된 값을 디코딩하는 방법은 무엇입니까?

  16. 16

    인코딩 된 값을 디코딩하는 방법은 무엇입니까?

  17. 17

    Electron : 메인 프로세스에서 모든 요청 응답을 포착하는 방법은 무엇입니까?

  18. 18

    Spring 5 Webclient로 원시 HTTP 요청 및 HTTP 응답을 인쇄하는 방법은 무엇입니까?

  19. 19

    구독하기 전에 다른 요청으로 http 응답을 반복하여 초기 응답을 확장하는 방법은 무엇입니까?

  20. 20

    http 응답의 "청크"를 저장하는 방법은 무엇입니까?

  21. 21

    Capybara Rspec에서 Ajax 요청이 전송되었는지 확인하는 방법은 무엇입니까?

  22. 22

    응답이 전송되기 전에 django보기에서 JSON을 재구성하는 방법은 무엇입니까?

  23. 23

    URL 안전을 위해 해시를 인코딩하고 줄이는 방법은 무엇입니까?

  24. 24

    FFMPEG에서 특정 메타 데이터 버전을 인코딩하는 방법은 무엇입니까?

  25. 25

    래칫을 사용하여 단일 웹 소켓 전송 요청을 통해 객체 배열을 보내는 방법은 무엇입니까?

  26. 26

    ajax 요청을 ajax 응답과 병합하는 방법은 무엇입니까?

  27. 27

    요청을 보내고 응답을 진행하고 클라이언트에게 다시 보내는 방법은 무엇입니까?

  28. 28

    템플릿을 전송하는 방법은 무엇입니까?

  29. 29

    템플릿을 전송하는 방법은 무엇입니까?

뜨겁다태그

보관