我有一个node.js应用程序连接到RabbitMQ以接收消息.当消息进来并将它输出到控制台时,我得到: {data:<Buffer 62 6c 61 68>,contentType:undefined}
如何从中获取正确的JSON或字符串?这是我的例子:
var amqp = require('amqp');
var connection = amqp.createConnection({ host: 'localhost' });
process.on('uncaughtException', function(err) {
console.error(err.stack);
});
connection.on('ready', function () {
// Use the default 'amq.topic' exchange
connection.queue('my-queue', function(q){
q.bind('#');
q.subscribe(function (message) {
console.log(message);
});
});
});
Run Code Online (Sandbox Code Playgroud)
使用RabbitMQ管理控制台发送消息(目前用于测试目的).在这个例子中,我发送了一个简单的消息,主题为"test",正文为"blah".
我是Node.js的新手,但我已经尝试过了
console.log(message.toJSON());
Run Code Online (Sandbox Code Playgroud)
我一无所获 甚至没有错误消息.(不知道如何解决问题)
console.log(message.toString());
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到[对象],这没有帮助
console.log(JSON.parse(message.toString('utf8')));
Run Code Online (Sandbox Code Playgroud)
也什么也没做,我没有得到任何错误信息.我认为它失败但为什么我没有得到例外我不知道.
我需要登录网站并执行操作.该网站基于REST,因此我可以轻松登录(登录信息作为查询字符串包含在URL中,因此我不需要设置凭据):
CookieContainer cookieJar = new CookieContainer();
HttpWebRequest firstRequest = (HttpWebRequest) WebRequest.Create(loginUrl);
firstRequest.CookieContainer = cookieJar;
firstRequest.KeepAlive = true;
firstRequest.Method = "POST";
HttpWebResponse firstResponse = (HttpWebResponse)firstRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)
这有效并且让我登录.我得到一个cookie以维持会话并将其存储在上面显示的cookieJar中.然后我做第二个请求,例如:
HttpWebRequest secondRequest = (HttpWebRequest) WebRequest.Create(actionUrl);
secondRequest.Method = "POST";
secondRequest.KeepAlive = true;
secondRequest.CookieContainer = cookieJar;
WebResponse secondResponse = secondRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)
我确保将cookie分配给新请求.但由于某些原因,这似乎不起作用.我收到一个错误,告诉我"我的会话已超时或已过期",这是一个接一个地完成,因此它不是时间问题.
我已经使用Fiddler来检查HTTP头,但我发现这很困难,因为这是HTTPS.(我知道我可以解密它,但似乎效果不好.)
我可以把我的URL用于这个休息服务并将它们粘贴到firefox中,一切正常,所以它一定是我做错了而不是连接的另一端.
我对HTTPS不太熟悉.我是否需要做其他事情来维持我的会话?我认为cookie就是它,但也许我需要在这两个请求中保留其他东西?
这是我发送第一个请求时返回的标题(除了我更改cookie以保护无辜者!):
X-DB-Content-length=19
Keep-Alive=timeout=15, max=50
Connection=Keep-Alive
Transfer-Encoding=chunked
Content-Type=text/html; charset=WINDOWS-1252
Date=Mon, 16 Nov 2009 15:26:34 GMT
Set-Cookie:MyCookie stuff goes here
Server=Oracle-Application-Server-10g
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,我的想法已经不多了.
我记得当.NET 4处于测试版时,有一个开发人员的视频制作了一个命令行应用程序,他可以输入C#代码,它会动态编译代码.我们的想法是编译器现在可以在.NET语言中使用.
有谁记得这是什么?我需要用一个小的宏语言创建一个应用程序,我很乐意使用C#作为那种宏语言,但我不知道在哪里可以找到这个库..
我希望能够实现带有可拖动项目的ItemsControl.ItemsControl的原因是我可以在后台绑定到我的ViewModel.
我尝试在画布中使用Thumb控件,它工作得很完美,除非我将它粘在ItemsControl中它就会停止工作.这是我尝试过的:
<ItemsControl ItemsSource="{Binding MyItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Thumb Canvas.Left="0" Canvas.Top="0" Width="50" Height="50" DragDelta="MyThumb_DragDelta"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
背后的代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MainViewModel();
}
private void MyThumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
Canvas.SetLeft((UIElement)sender, Canvas.GetLeft((UIElement)sender) + e.HorizontalChange);
Canvas.SetTop((UIElement)sender, Canvas.GetTop((UIElement)sender) + e.VerticalChange);
}
Run Code Online (Sandbox Code Playgroud)
最后我的ViewModel:
public class MainViewModel : DependencyObject
{
public ObservableCollection<Note> MyItems { get; set;}
public MainViewModel()
{
MyItems = new ObservableCollection<Note>();
MyItems.Add(new Note(){Name="test"});
}
}
public …Run Code Online (Sandbox Code Playgroud) 在 SQL Server 2008 R2 中,如果我这样做:
select SYSDATETIMEOFFSET()
Run Code Online (Sandbox Code Playgroud)
我回到格林威治标准时间 -6。
运行 SQL Server 的 Windows 中的时区设置为 GMT -7。
任何想法为什么会有差异?我需要在 SQL Server 的某个地方设置时区吗?
我有一个数据源,其中包含我在 Python 中读取的日期时间。该程序总是在第 24 小时终止,因为 python 保存日期 0-23 而不是 1-24。
考虑到我得到一个像“2012/15/01 24”这样的字符串,处理这个问题的最佳方法是什么?
我可以使用正则表达式将日期转换为日期时间,然后再次使用正则表达式获取小时,转换为 int,减去一个小时,然后将小时添加到日期时间,但这似乎很痛苦。
有没有更好的方法或更常见的方法来解决这个问题?
我可以在我的开发盒上运行得很好,但不能在产品中运行。
我在我的域服务器上安装了 SSL 证书。
如何告诉我的 ASP.NET Core 应用程序使用哪个证书?我想我需要添加一些东西让它知道。
我问是因为目前我得到:
无法启动 Kestrel。System.InvalidOperationException:无法配置 HTTPS 端点。未指定服务器证书,默认开发者证书找不到或已过期。
尝试在 IIS 上运行它,但没有任何运气,因此使用 Kestrel 进行测试,只需在我的工作计算机与服务器上单击它即可。
我有一个需要始终运行的C#应用程序.我最初计划将其作为Windows服务,但我现在需要使应用程序主机成为Web管理控制台.
我在几年内没有玩过IIS,所以我的问题是:
你会推荐我用什么?
我已经考虑过制作Windows服务并嵌入像Cassini这样的Web服务器,但到目前为止我对我看过的开源Web服务器并不满意.
IIS可以处理吗?人们是否将它用于此类情景,如果是这样的话?
我有一个大型 WPF MVVM 应用程序(目前有超过 100 个窗口,并且还在不断增长)。尽管我尝试在后台线程上尽我所能,但总有一天结果必须发送回 UI 线程才能显示。当有多个窗口同时执行此操作时,可能会影响性能。
过去我曾尝试在单独的 UI 线程上运行每个窗口,但遇到了很多线程问题,我不得不恢复到 WPF 每个应用程序仅 1 个 UI 线程的默认模型。
我知道随着 Windows 10 的推出,许多用户将在不同的桌面上打开更多窗口,从而使情况变得更糟。
有人知道如何让多个 UI 线程在 WPF 中正常工作吗?或者有任何我可以调查的信息来帮助我的应用程序沿着这条路走得更远吗?
我过去尝试过的方法是做类似的事情:
private void OnCreateNewWindow(
object sender,
RoutedEventArgs e)
{
Thread thread = new Thread(() =>
{
Window1 w = new Window1();
w.Show();
w.Closed += (sender2, e2) =>
w.Dispatcher.InvokeShutdown();
System.Windows.Threading.Dispatcher.Run();
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
Run Code Online (Sandbox Code Playgroud)
那是大约两年前的事了,不幸的是,我无法回忆起使用它时遇到的所有问题。
还有别的办法吗?有没有人使用这种方法或其他方法获得具有多个窗口的应用程序可以正常工作?
我有一个脚本可以下载我的组织中的所有存储库,并且运行良好。
我们最近添加了团队,我想定位一个特定的团队来下载该团队中的所有存储库。
为了获得整个组织,我可以这样做:(更改页码以遍历它们)
作品:
https://api.github.com/orgs/MY_ORG/repos?access_token=MY_TOKEN&per_page=100&page=1
Run Code Online (Sandbox Code Playgroud)
我该如何为组织中的团队做到这一点?我试过了:
不起作用
https://api.github.com/orgs/MY_ORG/teams/TEAM_SLUG/repos?access_token=MY_TOKEN
Run Code Online (Sandbox Code Playgroud)
以及其他一些,但都不起作用。
通过查看API 文档,我正在尝试的似乎应该可行。我什至无法获得文档所拥有的团队列表:
GET /orgs/:org/teams/:team_slug
Run Code Online (Sandbox Code Playgroud)
所以如果我这样做:
https://api.github.com/orgs/MY_ORG/teams/TEAM_SLUG?access_token=MY_TOKEN
Run Code Online (Sandbox Code Playgroud)
我刚刚收到“未找到”错误,并带有指向文档的链接。
有人成功做到这一点吗?
c# ×5
wpf ×2
.net ×1
asp.net-core ×1
compilation ×1
drag ×1
github ×1
https ×1
iis ×1
itemscontrol ×1
node.js ×1
python ×1
rabbitmq ×1
sql-server ×1
timezone ×1
webrequest ×1