在本文中,我们将详细介绍Express-从远程Web服务返回二进制数据的各个方面,并为您提供关于webexception远程服务器返回错误的相关解答,同时,我们也将为您带来关于.net–我应该从Web
在本文中,我们将详细介绍Express-从远程Web服务返回二进制数据的各个方面,并为您提供关于webexception 远程服务器返回错误的相关解答,同时,我们也将为您带来关于.net – 我应该从Web服务返回强类型数据集吗?、asp.net – “无法启动IIS Express Web服务器”错误、curl模拟向远程Web服务器post数据、express搭建一个web服务器的有用知识。
本文目录一览:- Express-从远程Web服务返回二进制数据(webexception 远程服务器返回错误)
- .net – 我应该从Web服务返回强类型数据集吗?
- asp.net – “无法启动IIS Express Web服务器”错误
- curl模拟向远程Web服务器post数据
- express搭建一个web服务器
Express-从远程Web服务返回二进制数据(webexception 远程服务器返回错误)
我尝试使用Express返回一些二进制数据。在示例中,它是PDF,但从理论上讲,它可以是任何类型的文件。
但是暂时将重点放在pdf上。我写了这段代码:
app.get(''*'', function (req, res) { getBinaryData(req.url, function (answer) { res.type(''pdf''); res.end(new Buffer(answer, ''binary'')); }, function (error) { res.setHeader(''Content-Type'', ''text/plain''); return res.end(error); } );});
基于我在这里看到的内容:https :
//github.com/strongloop/express/issues/1555
但是,我得到的PDF文件具有正确的页数,正确的标题…。但是所有页面都是空白
我肯定会担心getBinaryData()的返回,因为此函数询问了外部Web服务,当我直接询问该服务时,我得到了正确的文档。
预先感谢您的回答
答案1
小编典典我找到了一个更简单的解决方案:
request(req.url).pipe(res);
这会将来自远程Web服务的原始响应直接传递给我的响应!无论文件类型如何,我都能得到正确的文件。
.net – 我应该从Web服务返回强类型数据集吗?
我发现使用数据集是令人沮丧的,例如在插入其中的表时很难处理.当仅插入一条记录或仅从数据集中的特定表中获取一条记录时,将整个数据集来回传送似乎不合逻辑.
有没有更好的办法?
我是否应该转换为对象并通过Web服务使用对象?在整个地方进行转换以获得传递的对象可能同样乏味?
解决方法
asp.net – “无法启动IIS Express Web服务器”错误
我试过所有的解决方案贴出类似的问题,我想我做的一切正确。这里是我采取的步骤:
>向HTTP.SYS添加以下预留:
netsh http add urlacl url = http://:36899 / user = Everyone
>以管理员身份运行Visual Studio 2012(从技术上讲,我不认为自从我手动设置HTTP.SYS之后我甚至不需要)。
>禁用Windows防火墙。
>在我的“我的文档”文件夹中删除我的IISExpress文件夹,以确保默认设置。
>允许Visual Studio在我的web项目的applicationhost.config中创建条目。然后手动编辑配置文件更改localhost到192.168.0.100这是我的本地IP。然后回到Visual Studio中的项目属性,并将localhost更改为IP并保存项目,以便我的项目现在设置为http://192.168.0.100:36899。
我也尝试更改端口和重复上述步骤,只是因为某些原因使用端口。
我想让我的IIS Express开发者实例可以从我的IP上的Internet上进行远程测试。
解决方法
<bindings> <binding protocol="http" bindinginformation="*:8099:" /> </bindings>
关键是简单地删除localhost。请勿将其替换为星号,不要使用IP或计算机名称替换。只要在冒号后留空即可。
这样做后,我不需要以管理员身份运行Visual Studio,我可以随意将项目属性中的项目URL更改为本地IP或计算机名称。然后我设置端口转发,它是可访问的互联网。
编辑:
我发现了一个更多的怪癖,这是重要的让IIS Express正确服务外部请求。
>如果以管理员身份运行Visual Studio / IIS Express,则不能使用“netsh http add urlacl …”命令向HTTP.SYS添加预留。否则将导致HTTP 503服务不可用错误。删除您在URLACL中所做的任何保留,以解决此问题。>如果您没有以管理员身份运行Visual Studio / IIS Express,则必须向URLACL添加预留。
curl模拟向远程Web服务器post数据
首先,你的电脑要支持curl,只需找到php.ini配置文件,将";extension=php_curl.dll"前面的分号去掉并重启apache或iis;
test.php文件:
<?php
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"http://localhost:8088/curl/do.php");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,"username=adam&password=000000&firstname=lee");
$output = curl_exec($ch);
$output = json_decode($output,true);
curl_close($ch);
print_r($output);
?>
do.php:
<?php
$data = json_encode($_POST);
echo $data;
?>
此时我在本机访问http://localhost:8088/curl/test.php时即可看到:
Array ( [username] => adam [password] => 000000 [firstname] => lee )
写于2012年4月20 李汉团
express搭建一个web服务器
npm install express -g express这个库可以使用了。
npm install express-generator -g express-generator是一个项目生成器,用来快速构建一个项目,项目中使用需要express。
express --version 查看版本号
express firstapp 在命令行当前目录构建firstapp项目
express firstapp -e 以ejs为模板构建firstapp项目
在firstapp目录下:
npm install ejs 为firstapp项目安装ejs库
npm install 下载package.json中记录的所有依赖包到node_modules文件夹
npm start 启动服务
将html作为模板渲染引擎,在app.js中修改:
var express = require(''express'');
var path = require(''path'');
var favicon = require(''serve-favicon'');
var logger = require(''morgan'');
var cookieParser = require(''cookie-parser'');
var bodyParser = require(''body-parser'');
var ejs = require(''ejs'');
var index = require(''./routes/index'');
var users = require(''./routes/users'');
var app = express();
// view engine setup
app.engine(''.html'', ejs.__express);
app.set(''views'', path.join(__dirname, ''views''));
app.set(''view engine'', ''html'');
转载于猿2048:➻《express搭建一个web服务器》
今天的关于Express-从远程Web服务返回二进制数据和webexception 远程服务器返回错误的分享已经结束,谢谢您的关注,如果想了解更多关于.net – 我应该从Web服务返回强类型数据集吗?、asp.net – “无法启动IIS Express Web服务器”错误、curl模拟向远程Web服务器post数据、express搭建一个web服务器的相关知识,请在本站进行查询。
本文标签: