我想访问给定的Requests ServerVariables,但我似乎无法在Google上找到有关如何访问请求对象的Server Vars的任何内容.我该怎么做或者我注定永远不会知道?
我想要这样做的一个例子(但实际上并不是我想做的):
用户登录,你想要存储他们登录的地方的IP地址,或者我想记录用户 -来自浏览器的代理或引用者,他们正在查看该站点.
如果我这样做
#!/usr/local/bin/perl
use warnings;
use 5.014;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $res = $ua->get( 'http://www.perl.org' );
Run Code Online (Sandbox Code Playgroud)
我可以调用这样的HTTP::Response方法
say $res->code;
Run Code Online (Sandbox Code Playgroud)
是否有可能HTTP::Request从$res对象调用方法或需要HTTP::Request显式创建对象?
my $ua = LWP::UserAgent->new();
my $method;
my $res = $ua->get( 'http://www.perl.org' );
$ua->add_handler( request_prepare => sub { my( $request, $ua, $h ) = @_; $method = $request->method; }, );
say $method; # Use of uninitialized value $method in say
Run Code Online (Sandbox Code Playgroud) HTTP请求在我的localhost上工作正常,但是在我的服务器上使用python请求库运行相同的HTTP请求会返回"Too Many Redirects"错误
当我进入
localhost/terminal/jfk
Run Code Online (Sandbox Code Playgroud)
在浏览器中,我按预期获得了一个json字典.
但是,当我在我的服务器上使用python请求库在python中运行以下内容时
requests.get('http://splitmyri.de/terminal/jfk')
Run Code Online (Sandbox Code Playgroud)
我从请求模块收到"Too Many Redirects"错误.
是否有任何关于导致错误的想法?或建议缩小潜在原因?
嗨,我在使用Python请求库(http://docs.python-requests.org/en/latest/index.html)发布文本文件时遇到问题,你能让我知道我做错了什么吗?
我尝试搜索相关问题,并从Python脚本中使用POST发现此发送文件,但它没有回答我的问题.
这是我的代码:
import codecs
import requests
# Create a text file
savedTextFile = codecs.open('mytextfile.txt', 'w', 'UTF-8')
# Add some text to it
savedTextFile.write("line one text for example\n and line two text for example")
# Post the file THIS IS WHERE I GET REALLY TRIPPED UP
myPostRequest = requests.post("https://someURL.com", files=savedTextFile)
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上面的一些变化,我没有得到任何地方(每次都有新的错误).如何发布我刚刚创建的这个txt文件?我试图发布的API需要将文本文件发布到它.
任何帮助表示赞赏!
在我的应用程序中,我正在从每个viewcontroller发送http请求.但是,目前我正在实现一个类,它应该有发送请求的方法.
我的要求参数数量不一.例如,要获取tableview的事物列表,我需要将category,subcategory,filter和另外5个参数放入请求中.
这就是我现在的要求:
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setValue:verifString forHTTPHeaderField:@"Authorization"];
[request setURL:[NSURL URLWithString:@"http://myweb.com/api/things/list"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSMutableString *bodyparams = [NSMutableString stringWithFormat:@"sort=popularity"];
[bodyparams appendFormat:@"&filter=%@",active];
[bodyparams appendFormat:@"&category=%@",useful];
NSData *myRequestData = [NSData dataWithBytes:[bodyparams UTF8String] length:[bodyparams length]];
[request setHTTPBody:myRequestData]
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是创建方法,接受所有这些参数,那些不需要的参数将为零,然后我将测试哪些是nil,而不是nil的那些将被附加到参数字符串(ms).
然而,这是非常低效的.后来我在考虑传递一些带有参数存储值的字典.像在android的java中使用的nameValuePair的数组列表.
我不确定,我如何从字典中获取密钥和对象
-(NSDictionary *)sendRequest:(NSString *)funcName paramList:(NSDictionary *)params
{
// now I need to add parameters from NSDict params somehow
// ?? confused here :)
}
Run Code Online (Sandbox Code Playgroud) 我有这个场景,我的应用程序在 webView 中显示了一个 2 页的登录过程。
第一页仅询问您计划连接到哪个域。第二页要求提供凭据。
我正在尝试在 webView 中执行登录,然后从我的本机代码执行请求。我意识到我需要从 webView 获取存储的 cookie(但是从哪个 url?从第一页还是第二页?),然后将 cookie 用于本机代码请求。
有人可以告诉我该怎么做吗?登录过程很简单——用户通过 webview 登录——很好。现在,我知道如何使用 cookie 管理,但我不知道我应该寻找哪个 cookie - 它是第一个登录页面的 url 吗?是第二个吗?有关系吗?
接下来,如何使用 cookie 将 GET 请求发送回服务器,以便服务器知道我已通过身份验证?
我很感激我一无所知并寻求帮助的答案:)
如何在HttpServletRequest不阅读请求正文的情况下获取内容类型?
当我使用以下内容时,我得到null:
request.getContentType()
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下内容读取请求正文中的 JSON 数据时:
StringBuilder jsonsb = new StringBuilder();
BufferedReader jsonbr = request.getReader();
Run Code Online (Sandbox Code Playgroud)
该request.getReader()投
Caused by: java.lang.NullPointerException: null
at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106)
Run Code Online (Sandbox Code Playgroud)
我什至尝试使用以下内容并能够获取内容类型,但是NullPointerException在此语句之后从请求中获取读者时仍然获得相同的内容。
request.getHeader("Accept")
Run Code Online (Sandbox Code Playgroud) 我想从我的客户端调用我的cloudcode发出一个http请求.
我正在使用 MockHttpServletRequestBuilder 创建测试框架的请求。我的请求参数之一是字符串数组。对于我的测试,我想在我的请求中传递一个空数组来进行测试。但是,MockHttpServletRequestBuilder.addToMultiValueMap 中的断言不允许我传递 null 或空值。
这是我收到的错误主体:
java.lang.IllegalArgumentException: 'values' must not be empty
at org.springframework.util.Assert.notEmpty(Assert.java:214)
at org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder.addToMultiValueMap(MockHttpServletRequestBuilder.java:698)
at org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder.param(MockHttpServletRequestBuilder.java:153)
at MyMockApiRequests.queryPath(MockJdbcApiRequests.java:105)
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以测试这种情况吗?
我有这个代码:
request({
uri: 'https://graph.facebook.com/v2.6/me/messages',
qs: { access_token: PAGE_ACCESS_TOKEN },
method: 'POST',
json: messageData
})
Run Code Online (Sandbox Code Playgroud)
我想把它转换成Perl,到目前为止我是:
my $req = HTTP::Request->new( 'POST', 'https://graph.facebook.com/v2.6/me/messages');
$req->header( 'Content-Type' => 'application/json' );
$req->content( $messageData );
Run Code Online (Sandbox Code Playgroud)
我不知道如何将以下行合并到我的Perl代码中:
qs: { access_token: PAGE_ACCESS_TOKEN },
Run Code Online (Sandbox Code Playgroud)
它指定要添加到URL的查询参数.
我试图搜索网络,但大多数示例要么发送json内容或查询字符串,而不是两者.如果我对JavaScript代码的解释是正确的,我需要能够发送两者的东西.
提前感谢任何指导我的人.
http-request ×10
perl ×2
python ×2
android ×1
content-type ×1
cookies ×1
dns ×1
http ×1
httprequest ×1
ios ×1
javascript ×1
json ×1
key-value ×1
nsdictionary ×1
post ×1
redirect ×1
ruby ×1
servlets ×1
spring ×1
spring-mvc ×1
webview ×1