我想在我的应用程序中使用 APNs 推送服务,所以我使用以下代码:
var responseString = string.Empty;
using (var request = new HttpClient(new Http2CustomHandler()))
{
var content = new StringContent(body);
request.DefaultRequestHeaders.Add("authorization", $"bearer {authorization}");
request.DefaultRequestHeaders.Add("apns-topic", topicName);
if (!string.IsNullOrWhiteSpace(iD)) request.DefaultRequestHeaders.Add("apns-id", iD);
if (!string.IsNullOrWhiteSpace(expiration)) request.DefaultRequestHeaders.Add("apns-expiration", expiration);
if (!string.IsNullOrWhiteSpace(priority)) request.DefaultRequestHeaders.Add("apns-priority", priority);
if (!string.IsNullOrWhiteSpace(collapseID)) request.DefaultRequestHeaders.Add("apns-collapse-id", collapseID);
var result = request.PostAsync(url, content).GetAwaiter().GetResult();
responseString = result.Content.ReadAsStringAsync().GetAwaiter().GetResult();
}
Run Code Online (Sandbox Code Playgroud)
它在我的机器上工作得很好(Windows 10)。但是当我在我的服务器(windows server 2012 R2)上部署应用程序时,它会抛出这个异常:
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
c# iis web-services apple-push-notifications dotnet-httpclient
我有这两个类:
public class Message
{
string Message;
string Code;
}
public class MessageInitializer
{
DataSet ds;
DataRow dr;
message[] ms;
}
Run Code Online (Sandbox Code Playgroud)
我想像这样创建一个构造函数MessageInitializer:
MessageInitializer()
{
this.ms = new Message[ds.Tables[0].Rows.Count];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dr = ds.Tables[0].Rows[i];
ms[(string)dr.ItemArray[0]] = (string)dr.ItemArray[1];
}
}
Run Code Online (Sandbox Code Playgroud)
但是数组的索引必须是int类型.我不知道如何解决这个问题:
ms[(string)dr.ItemArray[0]] = (string)dr.ItemArray[1];
Run Code Online (Sandbox Code Playgroud)
更新:
代码格式是这样的字符串:[001-001-001],所以我无法将其转换为整数.
在 Visual Studio 中添加 Web 引用时,生成的代理类会自动使用默认命名空间,该命名空间由应用程序的默认命名空间和 Web 引用名称组成。问题是我有一个配置文件 Web 服务,我的所有项目都使用它来进行身份验证。由于命名空间,我无法添加配置文件类作为链接。现在我想知道是否有任何方法可以手动设置引用名称?(或者也许有更好的方法可以解决我的问题。)到目前为止,我发现了这一点:
1- 转到服务Reference.cs,然后重命名命名空间。(问题是每次我更新服务时,命名空间都会恢复为默认值)
2- 我发现了这一点:在 Visual Studio 中手动设置 Web 服务代理类的命名空间(问题是我必须更改可能导致意外错误的构建事件。)
我写了这个方法,以便将xml字符串转换为对象:
private object Deserializer(Type type)
{
object instance = null;
try
{
XmlSerializer xmlSerializer = new XmlSerializer(type);
using (StringReader stringreader = new StringReader(somestring))
{
instance = (type)xmlSerializer.Deserialize(stringreader);
}
}
catch (Exception ex)
{
throw ex;
}
return instance;
}
Run Code Online (Sandbox Code Playgroud)
但在这里:
instance = (type)xmlSerializer.Deserialize(stringreader);
Run Code Online (Sandbox Code Playgroud)
此错误显示:找不到类型或命名空间名称'type'(您是否缺少using指令或程序集引用?)我该如何解决?
我想要一种方法来生成带边界的随机坐标.这样的事情:
private Coordinate[] Calculate(Coordinate location1, Coordinate location2, Coordinate location3, Coordinate location4)
public class Coordinate
{
public double Latitude { set; get; }
public double Longitude { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Google 的 libphonenumber 库来验证手机号码,但我只想接受手机号码并拒绝固定电话号码。
这可能吗?
这是我的电话号码验证码:
public bool MobileNumberContentValidator(string mobileNumber, string region)
{
var phoneUtil = PhoneNumberUtil.GetInstance();
var phone = phoneUtil.Parse(mobileNumber, region.ToUpper());
if (phoneUtil.IsValidNumber(phone))//its validate all kind of phone numbers
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
此方法可验证固定电话号码和手机号码。我想拒绝固定电话号码并接受手机号码。
c# ×6
web-services ×2
.net ×1
coordinates ×1
iis ×1
location ×1
math ×1
namespaces ×1
soap ×1
wcf ×1