forked from joepie91/node-bhttp
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
CoffeeScript
39 lines
1.2 KiB
CoffeeScript
Promise = require "bluebird"
|
|
bhttp = require "./"
|
|
fs = require "fs"
|
|
devNull = require "dev-null"
|
|
|
|
formatLine = (line) -> line.toString().replace(/\n/g, "\\n").replace(/\r/g, "\\r")
|
|
|
|
Promise.try ->
|
|
# multipart POST upload
|
|
console.log "Starting upload..."
|
|
|
|
bhttp.post "http://posttestserver.com/post.php",
|
|
fieldOne: "value 1"
|
|
fieldTwo: "value 2"
|
|
fieldThree: ["value 3a", "value 3b"]
|
|
fieldFour: new Buffer "value 4"
|
|
testFile: fs.createReadStream("./lower.txt")
|
|
,
|
|
headers: {"user-agent": "bhttp/test POST multipart"}
|
|
onUploadProgress: (completedBytes, totalBytes, request) ->
|
|
console.log "#{completedBytes / totalBytes * 100}%", completedBytes, totalBytes
|
|
.then (response) ->
|
|
console.log "POST multipart", formatLine(response.body)
|
|
.then ->
|
|
# GET large file
|
|
console.log "Starting download..."
|
|
|
|
bhttp.get "http://posttestserver.com/files/2015/04/06/f_00.16.102133822615",
|
|
headers: {"user-agent": "bhttp/test GET large file"}
|
|
stream: true
|
|
.then (response) ->
|
|
#setTimeout (->), 10000
|
|
console.log "Got response"
|
|
response.on "progress", (completedBytes, totalBytes, request) ->
|
|
console.log "#{completedBytes / totalBytes * 100}%", completedBytes, totalBytes
|
|
response.pipe(devNull())
|
|
response.on "end", ->
|
|
console.log "Completed response download"
|