我是新来的api's并通过.NET调用它们
我有一个api:https://sub.domain.com/api/operations? param = value & param2 = value
api的注释说要授权我需要使用基本的访问身份验证 - 我该怎么做?
我目前有这个代码:
WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value¶m2=value");
req.Method = "GET";
//req.Credentials = new NetworkCredential("username", "password");
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
Run Code Online (Sandbox Code Playgroud)
但是我得到了401未经授权的错误.
我缺少什么,如何使用基本访问身份验证形成api呼叫?
我已经在TFS中有6个项目的解决方案.每个项目都在自己的文件夹中.
我右键单击了解决方案并添加了一个新项目,因此解决方案XML了解我的新项目.
我检查了解决方案文件,但新添加的项目未在源代码管理资源管理器中列出,大概是因为我从未检查过文件.
我的问题是如何检查项目并确保新项目文件进入其自己的文件夹?
如果我右键单击解决方案的根目录并选择新的项目文件,则将"目标源控制文件夹"设置为根目录 - 我是否需要首先在TFS中创建一个与项目文件夹名称匹配的文件夹?这看起来倒退了.
我正在通过 Android Studio 在模拟器上测试我的 Android 应用程序。一个月前,我设置了我的模拟器,做了一些测试等。我在上个月对代码库进行了更改,在设备上进行了测试,并希望针对模拟器进行测试,因为它的 API 比我的设备早。
当我运行模拟器时,它有一个早期版本的应用程序。例如,我更改了应用程序图标,但在模拟器中该图标是默认的 Android 图标。
是否需要采取特定步骤将我的更新版本推送到模拟器?
我正在尝试将证书添加到Web请求以连接到Azure服务.
我的代码看起来像这样:
string certThumbprint = "??thumbprint";
X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint, certThumbprint, false);
Run Code Online (Sandbox Code Playgroud)
现在我可以确认证书确实存在且指纹是否正确.但是certCollection回来是空的.
有任何想法吗?
更新:这是我打开证书商店的方式
certStore.Open(OpenFlags.ReadOnly);
Run Code Online (Sandbox Code Playgroud) 从 API 调用的结果来看,我有大量的 JSON 需要处理。
我目前有这个
Object convertObj = JsonConvert.DeserializeObject(responseFromServer);
Run Code Online (Sandbox Code Playgroud)
我知道我可以做类似的事情
Movie m = JsonConvert.DeserializeObject<Movie>(responseFromServer);
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它
m.FieldName
m.AnotherField
//etc
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想做类似的事情
var itemName = convertObj["Name"];
Run Code Online (Sandbox Code Playgroud)
获取列表中第一项的第一个 Name 值。
这是可能的,还是我必须创建一个类来反序列化?
我不想创建类的原因是我不是 API 的所有者,并且字段结构可能会改变。
编辑。
好的,所以我创建了这个类,因为它似乎是最好的方法,但是有没有办法将 JSON 反序列化为列表?
var sessionScans = new List<SessionScan>();
sessionScans = JsonConvert.DeserializeObject<SessionScan>(responseFromServer);
Run Code Online (Sandbox Code Playgroud)
抱怨它无法将 SessionScan 转换为通用列表。
我有以下XML
<root>
<Operations>
<OperationId>1</OperationId>
<OtherFields>...</OtherFields>
</Operations>
<Operations>
<OperationId>2</OperationId>
<OtherFields>...</OtherFields>
</Operations>
<Operations>
<OperationId>3</OperationId>
<OtherFields>...</OtherFields>
</Operations>
</root>
Run Code Online (Sandbox Code Playgroud)
使用C#和System.XML命名空间我使用以下代码获取所有操作:
XmlNodeList operations= doc.SelectNodes("/root/Operations");
Run Code Online (Sandbox Code Playgroud)
现在我需要遍历每个操作并引用字段(OperationId,OtherFields).
我试试这个:
foreach (XmlNode node in xnodes)
{
Console.WriteLine("Operation ID: {0}", node.SelectNodes("//OperationId")[0].InnerText);
}
Run Code Online (Sandbox Code Playgroud)
然而,这只是重复第一个OperationId - 1.
怎么了?
谢谢,安德鲁
我对 SFTP 或 OpenSSH 没有经验。我正在尝试连接到客户端的 SFTP 以上传文件。
我正在使用 SSH.NET 库 – https://github.com/sshnet/SSH.NET
在我的 C# 代码中,我有一个字符串变量中的私钥:
var key = @"-----BEGIN OPENSSH PRIVATE KEY-----
// snipped
-----END OPENSSH PRIVATE KEY-----
";
MemoryStream keyStream = new MemoryStream(Encoding.UTF32.GetBytes(key));
Renci.SshNet.ConnectionInfo conn = new Renci.SshNet.ConnectionInfo(
host,
port,
username,
new AuthenticationMethod[]
{
new PrivateKeyAuthenticationMethod(username, new PrivateKeyFile[]
{
new PrivateKeyFile(keyStream, ""),
}),
});
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
无效的私钥文件。
我的问题是,我已经看到其他键开始BEGIN RSA但我的键开始BEGIN OPENSSH- 这是问题吗?
在 HTML 中,我有一个日期输入:
<input type="date" id="checkInDate" value="<?php echo date('Y-m-d'); ?>" />
Run Code Online (Sandbox Code Playgroud)
我使用 jquery 订阅更改事件:
$('#checkInDate').on('change', function()
{
});
Run Code Online (Sandbox Code Playgroud)
如何获取该输入日期的选定值,向该日期添加一个并将另一个输入 (checkOutDate) 设置为该值?以下是我目前拥有的:
$('#checkInDate').on('change', function()
{
var checkInDate = $(this).val();
console.log(checkInDate); // result is yyyy-mm-dd, ex: 2015-02-20
var split = checkInDate.split('-');
var tomorrow = new Date(split[0], split[1], split[2], 0,0,0,0);
console.log(tomorrow); // result is Wed Mar 18 2015 00:00:00 GMT-0600 (Mountain Daylight Time)
});
Run Code Online (Sandbox Code Playgroud)
然而,这是不正确的,因为月份 02 被视为第三个月,因为月份是基于 0 的。
我有以下JavaScript代码
<div class="fb-like-box" data-href="snip" data-colorscheme="light"
data-show-faces="false" data-header="false" data-stream="false"
data-show-border="true"></div>
Run Code Online (Sandbox Code Playgroud)
我试图检测何时点击了like按钮.上面的代码呈现了一个iframe,所以我的jquery事件处理程序
$('.fb-like-box > button').on('click', function() { console.log('Clicked'); });
Run Code Online (Sandbox Code Playgroud)
永远不要开火.我尝试将这个div和其他内容包装在一个包装div中,并在$()调用中定位它,但它只在单击其他内容时触发,而不是由Facebook SDK呈现的区域触发.
我正在使用 bootstrap 和 jquery UI 对话框。
在我的页面顶部有一个 z-index 为 1000 的元素。
当我打开一个 jquery UI 对话框时,外部 div 的 z 索引是 101。
我已将 modal 属性设置为 true,但对话框的顶部出现在标题中的某些内容后面。请注意,对于我的标记中的实际 div,
<div id="divPopup" style="display: none; z-index:5000;"></div>
Run Code Online (Sandbox Code Playgroud)
由于 5000,看起来很好。但是,对话框的顶栏出现在内容后面。
有没有办法改变包装div的z-index?