小编Nic*_*ico的帖子

HTTP协议是否支持响应头中的多种内容类型?

我想知道我是否可以返回响应头

Content-Type: application/json text/json 
Run Code Online (Sandbox Code Playgroud)

或者这不合法吗?

HTTP协议声明Content-Type应为mediaType,mediaType定义如下:

   media-type     = type "/" subtype *( ";" parameter )
   type           = token
   subtype        = token
Run Code Online (Sandbox Code Playgroud)

但是我无法解释这意味着什么,任何人都可以启发我吗?

谢谢!

http http-headers

21
推荐指数
2
解决办法
3万
查看次数

由于SocketException,RabbitMQ新连接被拒绝

在尝试创建与另一台服务器上运行的rabbitmq的新连接时,我收到以下错误:

java.io.IOException
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:406)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:516)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:533)


Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; reason: java.net.SocketException: Connection reset


at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:216)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)



Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.DataInputStream.readUnsignedByte(Unknown Source)
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:131)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533)
Run Code Online (Sandbox Code Playgroud)

采取的步骤:

  • rabbitmq正在服务器上运行.
  • 服务器已指定
  • 指定了默认端口

lsof -i tcp:5672

命令PID用户FD类型设备大小/关闭节点名称

beam.smp 3084 rabbitmq 15u IPv6 18611 0t0 TCP*:amqp(LISTEN)

rabbitmqctl list_connections

列出连接... guest client_server …

java connection amqp rabbitmq

17
推荐指数
2
解决办法
3万
查看次数

为什么Postfix ++/ - 在C#中被归类为主要操作符?

目前我正在教授一类C++程序员C#语言的基础知识.在我们讨论主题运算符时,我使用了C#标准类别的primary,unary等运算符.

其中一位与会者感到困惑,因为在C#标准中,"postfix ++/ - "已被归入主要运营商的类别,而不是"前缀++/ - ".她的这种混乱背后的理由是,她宁愿实现C++运算符"后缀++/- " 来讲运营商"前缀++/- ".换句话说,她宁愿将运算符"prefix ++/ - "视为主要运算符. - 我理解她的观点,但我不能给她一个理由.好吧,运营商"postfix ++/ - "的优先级高于"前缀++/ - ",但这背后的唯一理由是什么?

该规范在"14.2.1运算符优先级和关联性"一节中提到了它.

所以我非常中立的问题:为什么Postfix ++/ - 在C#中被归类为主要操作符?它有更深层次的真相吗?

c# operators prefix-operator postfix-operator

14
推荐指数
1
解决办法
773
查看次数

何时更喜欢用SelectMany()表示的连接超过Linq中用join关键字表示的连接

Linq允许通过使用join关键字或使用带有where关键字的SelectMany()(即几个来自关键字)来表达内部联接:

var personsToState = from person in persons
                     join state in statesOfUS
                     on person.State equals state.USPS
                     select new { person, State = state.Name };
foreach (var item in personsToState)
{
    System.Diagnostics.Debug.WriteLine(item);
}

// The same query can be expressed with the query operator SelectMany(), which is
// expressed as two from clauses and a single where clause connecting the sequences.                     
var personsToState2 = from person in persons
                      from state in statesOfUS
                      where person.State == state.USPS
                      select new { person, State …
Run Code Online (Sandbox Code Playgroud)

linq join

8
推荐指数
1
解决办法
2302
查看次数

如何使用F#Interactive以交互方式测试C#函数

我有一组静态实用程序方法,包括单元测试.但是我希望有一种更加互动的方式来使用测试 - >修复 - >编译循环(REPL),就像在Lisp或Smalltalk中一样,可以立即在交互模式下执行代码.我尝试使用F#Interactive直接在VS 2010中打开的C#项目中测试这些方法,但我没有让它工作.

我知道我必须加载程序集(#r指令),打开命名空间然后可以调用方法(并检查结果).但是我如何在Visual Studio 2010中的"F#Interactive"中进行此操作?我知道在调试模式下可以使用"立即"窗口,但是当我编写代码时,我希望在"设计模式"下​​的F#Interactive中进行.

c# f# visual-studio-2010 f#-interactive read-eval-print-loop

8
推荐指数
1
解决办法
1757
查看次数

node.js https请求和XMLHttpRequest之间有什么区别?

通过node.js模块发送的HTTPS请求与XMLHttpRequest之间有什么区别?

我正在尝试向amazon aws发送HTTPS GET请求以从javascript(XMLHttpRequest)获取安全令牌,并且它始终失败,并且"来源控制 - 允许 - 来源"不允许"来源http:// my_ip ",但是如果我通过node.js模块发送相同的HTTPS GET请求它工作正常.

我对此感到困惑,因为如果服务器确实支持CORS,那么来自任何地方的任何请求都应该失败,但是它通过node.js,但不是通过XMLHttpRequest.

这失败

var url_ = "https://sts.amazonaws.com/?Action=GetSessionToken" +
            "&DurationSeconds=3600" +
            "&AWSAccessKeyId=XXXXXXXXXXXXXXX" +
            "&Version=2011-06-15" +
            "&Timestamp=" + encode(timestamp) +
            "&Signature=" + encode(hash) +
            "&SignatureVersion=2&SignatureMethod=HmacSHA256";

// Simple GET request
$.get(url_, function(data) {
    alert("response: " + data);
});
Run Code Online (Sandbox Code Playgroud)

这个工作

var https = require('https');
var options = {
    host    : 'sts.amazonaws.com',
    method  : 'GET',
    path    : '/?Action=GetSessionToken' +
              '&DurationSeconds=3600' +
              '&AWSAccessKeyId=XXXXXXXXXXXXXX' +
              '&Version=2011-06-15' +
              '&' + timestamp +
              '&' + signature +
              '&SignatureVersion=2&SignatureMethod=HmacSHA256' …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest node.js

8
推荐指数
1
解决办法
4024
查看次数

使用&的Strange Java强制语法

(实际上,这个问题与lambdas没有直接关系,但是对于使用边界的强制转换,所以标记为重复的问题并没有提供这个问题的答案.你会在这里找到我的问题的答案:我应该如何为Java转换具有多个边界的泛型?)

就在最近,我参加了SW工艺会议.在其中一个讨论的例子中,我遇到了一些这样的演员,它似乎是自Java 8以来的有效Java.

Object aTest = (String & CharSequence) "test";
Run Code Online (Sandbox Code Playgroud)

我的问题:有人可以告诉我这背后的成语以及它究竟能为我们做些什么吗?该示例的演示者无法解释它,我没有找到任何提及(我甚至不知道它的名称).

除了Oleksandr之外,我还要在这里提出另一个答案,因为这个问题已被标记为重复,因此被锁定.

与此同时,我能够构建一个(人为的)用例,只是为了明确这个想法.

假设我们有泛型方法foo(),它的唯一参数是通用的,而type参数有两个上限(反对ComparableSerializable):

public static <T extends Comparable & Serializable> void foo(T t) {
    System.out.println(t);
}
Run Code Online (Sandbox Code Playgroud)

进一步假设,我们有一个类AClass,实现ComparableSerializable

public class AClass implements Comparable, Serializable {
    @Override
    public int compareTo(Object other) {
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

进一步假设设计的部分,我们有一个AClass对象instance,它被分配给一个类型的变量Object:

Object instance = new AClass();
Run Code Online (Sandbox Code Playgroud)

如果,在代码的另一个地方,我们想要传递instancefoo(),并且我们不知道动态类型 …

java casting bounded-types type-bounds java-8

6
推荐指数
1
解决办法
318
查看次数

如何在OS X下从Applescript调用可可方法

在以前的OS X版本(10.6之前的版本)中,可以通过applescript(“ Applescript Studio”)中的“ call method”命令来调用Cocoa方法。例如,这种方式: “ Applescript编辑器”(10.6)中的脚本解释器不理解命令“ call method”。-“ Applescript编辑器”(10.6)是否等效? set theURL to "http://www.apple.com" set URLWithString to (call method "stringByAddingPercentEscapesUsingEncoding:" of theURL with parameter 30)

macos cocoa applescript objective-c

5
推荐指数
1
解决办法
1882
查看次数

为什么我可以抛弃IList <T>的不变性?

目前,我正准备为我的同事介绍C#中新的通用差异功能.为了简化故事,我写了以下几行:

IList<Form> formsList = new List<Form> { new Form(), new Form() };
IList<Control> controlsList = formsList;
Run Code Online (Sandbox Code Playgroud)

是的,这当然是不可能的,因为IList(Of T)是不变的(至少我的想法).编译器告诉我:

无法隐式转换 System.Collections.Generic.IList<System.Windows.Forms.Form>System.Collections.Generic.IList<System.Windows.Forms.Control>.存在显式转换(您是否错过了演员?)

嗯,这是否意味着我可以强制进行显式转换?我刚尝试过:

IList<Form> formsList = new List<Form> { new Form(), new Form() };
IList<Control> controlsList = (IList<Control>)formsList;
Run Code Online (Sandbox Code Playgroud)

并且...它编译!这是否意味着我可以抛弃不变性? - 至少编译器没问题,但我只是将前编译时错误转为运行时错误:

Unable to cast object of type 'System.Collections.Generic.List`1[System.Windows.Forms.Form]' to type 'System.Collections.Generic.IList`1[System.Windows.Forms.Control]'.

我的问题:为什么我可以将IList<T>(或我的实验的任何其他不变界面)的不变性抛弃了?我是否真的抛弃了不变性,或者在这里发生了什么样的转换(因为IList(Of Form)并且IList(Of Control)完全不相关)?这是C#的一个黑暗角落,我不知道?

c# type-conversion generic-variance c#-4.0

5
推荐指数
1
解决办法
673
查看次数