我按照其他SO问题来设置URL的参数,但它给出了错误:
setQueryString(String)类型中的方法HttpMethodBase不适用于参数(NameValuePair[])
和
无法实例化该类型
NameValuePair.
我无法理解实际问题.有人可以帮我吗?
我从上面的问题中使用的代码
GetMethod method = new GetMethod("example.com/page";);
method.setQueryString(new NameValuePair[] {
new NameValuePair("key", "value")
});
Run Code Online (Sandbox Code Playgroud) 我想知道,有没有可能找出响应流中标题结束的位置?
问题的背景如下,我在c中使用套接字从网站获取内容,内容以gzip编码.我想直接从流中读取内容并使用zlib对gzip内容进行编码.但我如何知道gzip内容已启动且http标头已完成.
在我看来,我大致尝试了两种给我一些奇怪结果的方法.首先,我在整个流中读取,并在终端中打印出来,我的http标题以"\ r \n \n \n \n"结束,就像我预期的那样,但是时间紧迫,我只需要检索一次响应以获取标题然后使用while循环读取内容,此处标题结束时不带"\ r \n \n \n \n".
为什么?哪种方式是阅读内容的正确方法?
我只是给你代码,这样你就可以看到我是如何从服务器获得响应的.
//first way (gives rnrn)
char *output, *output_header, *output_content, **output_result;
size_t size;
FILE *stream;
stream = open_memstream (&output, &size);
char BUF[BUFSIZ];
while(recv(socket_desc, BUF, (BUFSIZ - 1), 0) > 0)
{
fprintf (stream, "%s", BUF);
}
fflush(stream);
fclose(stream);
output_result = str_split(output, "\r\n\r\n");
output_header = output_result[0];
output_content = output_result[1];
printf("Header:\n%s\n", output_header);
printf("Content:\n%s\n", output_content);
Run Code Online (Sandbox Code Playgroud)
.
//second way (doesnt give rnrn)
char *content, *output_header;
size_t size;
FILE *stream;
stream = …Run Code Online (Sandbox Code Playgroud) 请求删除不存在的对象时应返回什么状态码?
public ContentResult DeleteEntity(int id, FormCollection FormData)
{
Database db = new Database();
TargetEntity te = db.TargetEntities.SingleOrDefault(t => t.Id == id);
if(te == null)
{
Reponse.StatusCode = 400; //Is this correct?
return Content("Deletion failed. Invalid ID: " + id);
}
//Delete the entity
return Content("Successfully Deleted");
}
Run Code Online (Sandbox Code Playgroud)
该请求本身很好,只是发生了指定的ID无效(或该项目已被删除)的情况,因此我不确定400的范围。我敢肯定,这500个代码甚至不适合此代码,因为服务器上没有出错(只是要求删除不存在的内容)。
哪种状态码在这里最合适?
我在http.request()中的node.js中有以下函数
res.on('data', function (chunk) {
var sr="response: "+chunk;
console.log(chunk);
});
Run Code Online (Sandbox Code Playgroud)
我在控制台得到这个
<Buffer 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f
64 69 6e 67 3d 22 75 74 66 2d 38 22 20 3f 3e 3c 72 65 73 75 6c 74 3e 3c 73 75 63
...>
Run Code Online (Sandbox Code Playgroud)
但是当我使用它时:
res.on('data', function (chunk) {
var sr="response: "+chunk;
console.log(sr);
});
Run Code Online (Sandbox Code Playgroud)
我得到一个正确的xml响应,如下所示:
responose: .....xml responose.....
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我需要附加一个字符串来输出正确的响应.第一个代码中生成的响应是什么意思?
我意识到这可能听起来像一个奇怪的问题,但我在网络电话中看到了一些奇怪的结果,所以我想弄清楚我是否误解了一些东西.
我看到在孤立事件中,当我上传数据时,即使响应为200,数据也不会出现在服务器上.我的猜测是,在初始HTTP握手期间,200响应到达,然后事后出现问题.这是对事件顺序的正确解释吗?或者,一旦服务器收集了发送标头告诉它在请求中的任何数据,就交付200了吗?(因为如果是这样的话,我会回到绘图板上,看看我看到的是什么).
这可能是一个"新问题",但无论如何它仍然存在.我们有一个netty服务器启动并运行,我们希望它支持多种不同的协议,如直接tcp,http,udp等.我正在尝试编写一个更动态的类,我们添加到管道上的处理程序/解码器/编码器每个请求所以我们只根据它的流量类型添加我们需要的层.我已经找到了直接的tcp,因为我们正在编码特殊的字节,但是我很难想出一个聪明的方法来判断它的HTTP流量与直接tcp是否基于ChannelBuffer或字节数组.
我的想法一直沿着阅读的一些字节读取并寻找像'GET'或'POST'这样的字符串,我假设HTTPRequest会在某个地方有这些项目..我正在努力做的是值得吗?或者任何人有任何有用的想法?
我一直致力于开发安全代理后面的CXF Web服务,该代理要求在服务调用之前进行HTTP基本身份验证.这些服务彼此之间进行通信,并要求对请求和响应进行身份验证.
到目前为止,我已经能够通过HTTPConduit为请求设置HTTP基本身份验证,如下所示:
Client client = ClientProxy.getClient(port);
HTTPConduit conduit = (HTTPConduit) client.getConduit();
AuthorizationPolicy authorizationPolicy = new AuthorizationPolicy();
authorizationPolicy.setUserName(username);
authorizationPolicy.setPassword(password);
authorizationPolicy.setAuthorizationType("Basic");
conduit.setAuthorization(authorizationPolicy);
Run Code Online (Sandbox Code Playgroud)
在每个服务方法调用上调用上面的方法,并且我以正式的形式获得正确的入站消息
INFO: Inbound Message
----------------------------
ID: 1
Address: http://someURL/someService?wsdl
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml; charset=UTF-8
Headers: {Accept=[*/*], Authorization=[Basic {TOKEN}],
cache-control=[no-cache], connection=[keep-alive],
Content-Length=[735], content-type=[text/xml; charset=UTF-8],
pragma=[no-cache], ...}
Payload: <soap:Envelope>...</soap:Envelope>
--------------------------------------
Run Code Online (Sandbox Code Playgroud)
但是,响应不包含所需的标头
INFO: Outbound Message
---------------------------
ID: 2
Encoding: UTF-8
Content-Type: text/xml
Headers: {}
Payload: <soap:Envelope/">...</soap:Envelope>
--------------------------------------
Run Code Online (Sandbox Code Playgroud)
如何修改响应HTTP标头?我试过了
((BindingProvider)port).getResponseContext().put(
MessageContext.HTTP_RESPONSE_HEADERS,
Collections.singletonMap("Authentication",
Collections.singletonList("Basic "+token)));
Run Code Online (Sandbox Code Playgroud)
没有得到理想的结果.
这是交易.
我在做一个$ http调用时会显示一个微调器,但问题是我有多个调用,所以我在这里找到的例子没有帮助.
有人有解决方案吗?
一种堆叠调用的方法,以便微调器保持到最后一次调用结束?我希望能说明问题.
我这样做.
angular.module('moduleName', []).
factory.("SomeService", function () {
return:{
getResources(params) {
/* do the $http call */
}
}
}).
controller("SomeCtrl", function (SomeService) {
SomeService.getResources(params)
}).
controller("OtherCtrl", function (SomeService) {
SomeService.getResources(params)
});
Run Code Online (Sandbox Code Playgroud)
2个控制器可以同时调用服务,可能会得到不同的响应.
我需要调用一个发出http请求的函数,让它通过回调将值返回给我.但是,当我尝试时,我一直得到空响应.有帮助吗?
这是我的代码:
var url = 'www.someurl.com'
makeCall(url, function(results){return results})
makeCall = function (url, results) {
https.get(url,function (res) {
res.on('data', function (d) {
resObj = JSON.parse(d);
results(resObj.value)
});
}).on('error', function (e) {
console.error(e);
});
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试从Jekins服务器获取URL.直到最近,我才能使用此页面上描述的模式(HOWTO使用urllib2获取Internet资源)来创建一个密码管理器,该管理器使用用户名和密码正确响应BasicAuth挑战.一切都很好,直到Jenkins团队改变他们的安全模型,并且该代码不再有效.
# DOES NOT WORK!
import urllib2
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
top_level_url = "http://localhost:8080"
password_mgr.add_password(None, top_level_url, 'sal', 'foobar')
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(handler)
a_url = 'http://localhost:8080/job/foo/4/api/python'
print opener.open(a_url).read()
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
Traceback (most recent call last):
File "/home/sal/workspace/jenkinsapi/src/examples/password.py", line 11, in <module>
print opener.open(a_url).read()
File "/usr/lib/python2.7/urllib2.py", line 410, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 448, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 382, …Run Code Online (Sandbox Code Playgroud)