我正在android中建立一个登录应用程序,我正在点击一个url(用户名和密码),直到那部分它工作正常,但在那之后每当我点击一个url(一旦用户被认证),它什么都不返回(即错误消息,请先登录).但它在非常相似的iPhone应用程序和浏览器上工作正常.
我得到的地方是phpSessionId的错误(即会话被销毁以获得进一步的请求)如果我们希望我们的Android应用程序在服务器端保持身份验证,我们需要在第一次连接后获取该ID,然后将其发送到我们所有后续请求的标题.
但问题是,我无法从第一个连接的标头获取sessionId,并发送带有标头的进一步请求.
请给我一些代码或链接来正确完成任务.谢谢.
我需要HTTP将XML数据发布到具有名称为XMLdata的Textarea的URL.我的XMl数据已准备就绪,位于XDocument Sendingxml = xml中; 但是我试过的邮政编码不起作用.主要是因为我不知道如何将XML数据放在postData变量中,因为它只接受字符串.这是我的代码:
XDocument Sendingxml = xml;
// string Sendingxml = "<?xml version=1.0 encoding=UTF-8> <PluginData> <Credential UserName=avosfieldagent01 AuthenticationToken=61cc3957744742dca238c4dd7cbca702 /><Session><PropertyAddress>5 Crosskey</PropertyAddress><PropertyAddress2/><PropertyCity>California</PropertyCity><PropertyState>CA</PropertyState><PropertyZip>92620</PropertyZip><PropertyType>Condo</PropertyType><SourceReferenceId>45643</SourceReferenceId><SessionId>2013070100158346</SessionId><SessionCompleteReturnURL/><CustomerId/><BluebookOrderCheckSum>681a598cf23f412095f6092c281823e6</BluebookOrderCheckSum><BluebookOrderId>11160</BluebookOrderId> </Session></PluginData>";
// Create a request using a URL that can receive a post.
WebRequest request =
WebRequest.Create("https://test.bluebookcva.net/order/testdirectplugin/3");
// Set the Method property of the request to POST.
request.Method = "POST";
// Create POST data and convert it to a byte array.
string postData = "XMLData=" + Sendingxml; //My problem is here as I need postData as XDocument.
byte[] …Run Code Online (Sandbox Code Playgroud) 是否可以从JavaScript检测页面的HTTP请求方法(例如GET或POST)?如果是这样,怎么样?
对于POST方法,W3规范说:
如果在源服务器上创建了资源,则响应应该是201(已创建)并包含描述请求状态的实体,并引用新资源和Location头(请参阅第10.4节).
http://www.ietf.org/internet-drafts/draft-ietf-httpbis-p2-semantics-05.txt(8.5节)
标准响应实际上似乎是将重定向发送到新创建的资源.
我正在使用ASP.NET MVC构建我的站点,并尝试遵循规范,因此创建了一个ResourceCreatedResult类:
public class ResourceCreatedResult : ActionResult
{
public string Location { get; set; }
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.Clear();
context.HttpContext.Response.StatusCode = 201;
context.HttpContext.Response.ClearHeaders();
context.HttpContext.Response.AddHeader("Location", Location);
}
}
Run Code Online (Sandbox Code Playgroud)
我的行为看起来像这样:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateNew(string entityStuff)
{
Entity newEntity = new Entity(entityStuff);
IEntityRepository entityRepository = ObjectFactory.GetInstance<IEntityRepository>();
entityRepository.Add(newEntity);
ActionResult result = new ResourceCreatedResult()
{ Location = Url.Action("Show", new { id = newEntity.Id }) };
return result;
}
Run Code Online (Sandbox Code Playgroud)
但是,IE,Firefox和Chrome都无法重定向到新资源.我是否搞砸了生成正确的响应,或者网络浏览器不期望这种类型的响应,而是依靠服务器发送重定向响应?
我正在编写一个响应HTTP重定向的webapp.有没有办法强制客户端转发我在新网址的响应中包含的标头?
示例请求:
POST /insertion HTTP/1.1
Content-Length: 9
(content)
Run Code Online (Sandbox Code Playgroud)
Webapp响应:
HTTP/1.x 302 Found
Location: /dock
Mydata: asdf
Run Code Online (Sandbox Code Playgroud)
下一个客户请求:
GET /dock HTTP/1.1
Mydata: asdf
Run Code Online (Sandbox Code Playgroud)
更新:似乎我不清楚此事.我知道cookie会很有用,但我不能使用它们.你知道是否存在像我正在寻找的东西吗?
header("Content-type: text/css"); 适用于Firefox,Chrome等,但不适用于Internet Explorer 9.我不确定是什么.
在Chrome和Firework中,如果我在自己的标签中打开它并将其应用于页面,则会显示样式表.
在开发人员工具的网络下的Chrome中,它说类型是text/css,状态是200.
在Internet Explorer 9中,如果我在自己的选项卡中打开它并且它没有应用于页面,则它想要下载样式表.
在F12开发人员工具中,您可以单击网络,开始捕获并刷新页面.它显示了Style.css.php.类型是text/html,结果是406.
这是在头脑中:
<link rel="stylesheet" type="text/css" href="/assets/css/style.css.php" media="screen" />
Run Code Online (Sandbox Code Playgroud)
请求标头:
Key Value
Request GET /assets/css/main.css HTTP/1.1
Accept text/css
Referer http://10.0.1.5/
Accept-Language en-US
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding gzip, deflate
Host 10.0.1.5
Connection Keep-Alive
Cookie PHPSESSID=*Hidden*
Run Code Online (Sandbox Code Playgroud)
响应标头:
Key Value
Response HTTP/1.1 406 Not Acceptable
Date Fri, 01 Apr 2011 10:12:42 GMT
Server Apache/2.2.14 (Ubuntu)
Alternates {"main.css.php" 1 {type application/x-httpd-php}}
Vary …Run Code Online (Sandbox Code Playgroud) 我正在尝试上传文件并返回有关文件属性(名称,大小等)的json响应.它在除IE之外的所有浏览器中都能正常工
IE尝试将JSON下载为文件!
我有IE10并通过从调试器更改浏览器模式和文档模式在IE7到10上测试它.
我使用的是asp.net mvc4,文件上传操作有HttpPost属性,我使用return Json(myObject)返回json响应;
这是我的http标题
请求
Key Value
Request POST /File/UploadFile/ HTTP/1.1
Accept text/html, application/xhtml+xml, */*
Referer http://localhost:63903/
Accept-Language en-NZ
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type multipart/form-data; boundary=---------------------------7dc1e71330526
Accept-Encoding gzip, deflate
Host localhost:63903
Content-Length 1377002
DNT 1
Connection Keep-Alive
Cache-Control no-cache
Run Code Online (Sandbox Code Playgroud)
响应
Key Value
Response HTTP/1.1 200 OK
Server ASP.NET Development Server/11.0.0.0
Date Tue, 18 Dec 2012 23:44:19 GMT
X-AspNet-Version 4.0.30319
X-AspNetMvc-Version 4.0
Cache-Control private
Content-Type application/json; charset=utf-8
Content-Length 154 …Run Code Online (Sandbox Code Playgroud) 当浏览器向Web服务器发送HTTP请求时,使用什么编码对线路上的HTTP协议进行编码?是ASCII吗?UTF8?还是UTF16?或者它是否指定了它以预定义格式使用的编码(在进行任何解码之前?)
PS我不是在询问请求/响应的实际有效负载(例如HTML).我问的是请求行(即GET /index.html HTTP/1.1)和标题(即Host: google.com)
此线程是如何在HTTP中编码Content-Disposition标头的filename参数的副本? 但是,由于很久以前就提出这个问题并且仍然没有令人满意的答案(在我看来),我想再问一次.
我开发了一个C++ CGI应用程序,它可以提供名称中包含特殊字符的文件,例如
" weird#€= {}; filename.txt "
似乎没有可能以适合每个浏览器的方式设置HTTP Content-Dispostion
我会为每个浏览器提供不同的解决方案.
现在我走了多远:
Internet Explorer(添加双引号并替换#和;)
Content-Disposition: attachment; filename="weird %23 € = { } %3B filename.txt"
Run Code Online (Sandbox Code Playgroud)
Firefox(双引号似乎工作.没有更多事情要做):
Content-Disposition: attachment; filename="weird # € = { } ; filename.txt"
Run Code Online (Sandbox Code Playgroud)
另一种工作方式:
Content-Disposition: attachment; filename*=UTF-8''weird%20%23%20%e2%82%ac%20%3D%20%7B%20%7D%20%3B%20filename.txt
Run Code Online (Sandbox Code Playgroud)
铬
当只使用双引号时会出现这些问题:
但这有效:
Content-Disposition: attachment; filename*=UTF-8''weird%20%23%20%e2%82%ac%20%3D%20%7B%20%7D%20%3B%20filename.txt
Run Code Online (Sandbox Code Playgroud)
歌剧
使用duoble引号或使用语法:filename*= UTF-8''...会产生以下问题:
我有一个反向代理,在外部执行HTTPS,但内部使用HTTP.
这意味着默认情况下,应用程序内URL将使用HTTP作为方案,因为这是它的联系方式.
代理如何告诉后端应该使用HTTPS?
http-headers ×10
http ×3
android ×1
asp.net-mvc ×1
browser ×1
c# ×1
c#-4.0 ×1
c++ ×1
cgi ×1
content-type ×1
https ×1
javascript ×1
json ×1
php ×1
protocols ×1
session ×1
xml ×1