Request: рдЙрдЪреНрдЪрд╛рд░рдг рд╡рд░реНрдг? я┐╜

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдирд╡ре░ 2011  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: request/request

рдирдорд╕реНрддреЗ!

рдореИрдВ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдХреЛ рдПрдХреНрд╕реЗрдВрдЯ рдХреИрд░реЗрдХреНрдЯрд░ ├б ├й ├│ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реИрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ encoding: utf-8 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдпрд╣ рд╡рд░реНрдг рдЕрднреА рднреА рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВред

 request.get({
      uri: url,
      encoding: 'utf-8'
      // ...

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрдиреБрд░реЛрдз ({url: " www.example.com ", рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: "latin1" }, рдлрд╝рдВрдХреНрд╢рди (рддреНрд░реБрдЯрд┐, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, html) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рддреНрд░реБрдЯрд┐:', рддреНрд░реБрдЯрд┐);

рд╕рднреА 17 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдЪреНрдЫрд╛, рдкреГрд╖реНрда рдХрд┐рд╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдЖрдк рдЖрдИрдПрд╕рдУ рдкрд░ рдпреВрдЯреАрдПрдл 8 рдкрд╛рд░реНрд╕рд░ рдирд╣реАрдВ рдлреЗрдВрдХ рд╕рдХрддреЗ-рдЬреЛ рднреА рд╣реЛред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрд╕рдУ рдХреЛ рдХреНрд░реЙрд╕-рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛: http://stackoverflow.com/questions/8332500/module-request-how-to-properly-retrieve-accented-characters

@thejh рдкреЗрдЬ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ iso-8859-1 рд╣реИ, рдореИрдВрдиреЗ рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:

request.get({
    uri: url,
    encoding: 'iso-8859-1'
    // ...

рдФрд░ рдореБрдЭреЗ рдорд┐рд▓ рдЧрдпрд╛:

Error: Unknown encoding

рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ https://github.com/mikeal/request/issues/27 рдлрд┐рд░ http://nodejs.org/docs/v0.6.0/api/http.html#request.setEncoding

Set the encoding for the request body. Either 'utf8' or 'binary'. Defaults to null, which means that the 'data' event will emit a Buffer object..

рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд░ рджрд┐рдпрд╛ред

Iconv рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдареАрдХ рд╣реИ... рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдмрд╛рдЗрдирд░реА рдХрд╛рдо рдХреНрдпреЛрдВ рдХрд░рддреА рд╣реИ?

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдХрдЪреНрдЪреЗ рдмрдлрд╝рд░реНрд╕ рдбреЗрдЯрд╛ рд▓реЗрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрднреА рднреА utf8 рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рди рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ?

рдХреЛрдИ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд╣реАрдВред рдЗрд╕реЗ рдПрдХ рдмрдлрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ iconv рдореЗрдВ рднрд░ рджреЗрдВред

рднреНрд░рдо "рдмрд╛рдЗрдирд░реА" рдФрд░ рдмрдлрд░ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдЗрдирд░реА рднреА рд╣реИред

"рдмрд╛рдЗрдирд░реА", рдЬреНрдпрд╛рджрд╛рддрд░, рдиреЛрдб 0.1.x рджрд┐рдиреЛрдВ рд╕реЗ рдПрдХ рд╡рд┐рд░рд╛рд╕рдд рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдордиреЗ рд╕рднреА рдмрд╛рдЗрдирд░реА рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рд╣реИред

рдиреЛрдб.рдЬреЗрдПрд╕ 0.2 рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рдмрдлрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛, рдЬреЛ рдХрд┐ v8 рдХреЗ рдвреЗрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдореГрддрд┐ рдХрд╛ рдХрдЪреНрдЪрд╛ рдЖрд╡рдВрдЯрди рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрдЪреНрдЪреЗ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдиреБрд░реЛрдз рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рд╡рд╕реНрддреБ рдХреЛ рдкрд╛рдЗрдк () рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдмрдлрд╝рд░реНрд╕ рдХреЛ рдЧрдВрддрд╡реНрдп рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ http рдЕрдиреБрд░реЛрдз рд╕реЗ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓, рд╕реЙрдХреЗрдЯ рдпрд╛ http рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрд╛рдЗрдк() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@phstc рдбреЙрдХреНрд╕ рджреЛрд╕реНрдд! https://github.com/mikeal/request/blob/master/README.md

@ рдорд┐рдХреЗрд▓ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!

рдореБрдЭреЗ рдПрдХ рд╣реА HTTP рдЕрдиреБрд░реЛрдз (рдпрд╣ рдПрдХ рд╡реЗрдмрдПрдк рд╣реИ) рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдпреВрдЖрд░рдПрд▓ рд╕реНрдХреНрд░реИрдк рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрди рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреЗрдЬреЗрдВред

рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдирд╣реАрдВ рднреЗрдЬ рд╕рдХрддрд╛:

request.get({
        uri: url1
}).pipe(res);

request.get({
        uri: ur2
}).pipe(res);

рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ

var writeStream = fs.createWriteStream('./output');
request.get({
        uri: url1
}).pipe(writeStream);

request.get({
        uri: url2
}).pipe(writeStream);

// after all pipes finish I send writeStream content to the response

?

рдореИрдВ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдХрд┐рд╕ рдзрд╛рд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЖрдк рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

HTTP рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ, рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрд░реЛрдз рд╡рд╕реНрддреБ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдПрдХ рдлрд╝рд╛рдЗрд▓ рд▓реЗрдЦрди рд╕реНрдЯреНрд░реАрдо рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рднреА :)

рдЕрдиреБрд░реЛрдз ({url: " www.example.com ", рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: "latin1" }, рдлрд╝рдВрдХреНрд╢рди (рддреНрд░реБрдЯрд┐, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, html) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рддреНрд░реБрдЯрд┐:', рддреНрд░реБрдЯрд┐);

@ vickygill69 рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЗ рдЙрддреНрддрд░ рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЧрдпрд╛

рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ iconv рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xin7c picture xin7c  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

codecowboy picture codecowboy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matrosov-nikita picture matrosov-nikita  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ