小编zi3*_*guw的帖子

WebUtility.HtmlDecode vs HttpUtilty.HtmlDecode

WebUtilty.HtmlDecode用来解码HTML.事实证明它没有正确解码,例如,–应该解码为" - "字符,但WebUtilty.HtmlDecode不解码它.HttpUtilty.HtmlDecode但是,确实如此.

Debug.WriteLine(WebUtility.HtmlDecode("–"));
Debug.WriteLine(HttpUtility.HtmlDecode("–"));


> –
> –
Run Code Online (Sandbox Code Playgroud)

解码截图

这两者的文档是相同的: 将已经过HTML编码的HTTP传输的字符串转换为已解码的字符串.

为什么它们不同,我应该使用哪一个,如果我切换到WebUtility.HtmlDecode以使" - "正确解码,会发生什么变化?

.net html c# windows-phone

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

Cookie未在Windows Phone应用中发送,但Cookie在Windows 8应用中使用相同的代码发送

我有一个使用HttpWebRequest/生成GET和POST请求的基本类HttpWebResponse.

我使用我的类登录API,然后请求数据.在Windows 8"Metro"应用程序中,它完全按预期工作.在Windows Phone 8应用程序上,登录似乎成功,但在随后的数据请求中,不会发送任何cookie,服务器会响应,就像客户端未登录一样.

这是类,这个完全相同的代码用于Windows 8应用程序和Windows Phone应用程序:

class Class1
    {
        CookieContainer cookieJar = new CookieContainer();
        CookieCollection responseCookies = new CookieCollection();

        public async Task<string> httpRequest(HttpWebRequest request)
        {
            string received;

            using (var response = (HttpWebResponse)(await Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null)))
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var sr = new StreamReader(responseStream))
                    {
                        cookieJar = request.CookieContainer;
                        responseCookies = response.Cookies;
                        received = await sr.ReadToEndAsync();
                    }
                }
            }

            return received;
        }

        public async Task<string> get(string path)
        {
            var request = …
Run Code Online (Sandbox Code Playgroud)

.net c# http windows-8 windows-phone-8

12
推荐指数
1
解决办法
3482
查看次数

在Windows Phone上保留HTTPOnly cookie

我有一个应用程序通过HTTPS向API发送用户名和密码.API返回HTTPOnly cookie.

这意味着cookie对代码"不可见",但仍然存在,并将在后续请求中发送到服务器.

Set-Cookie报头被从汽提HttpWebResponse.Headers和cookie不出现在HttpWebResponse.CookieS或的HttpWebRequest.CookieContainer.但是,如果使用相同的请求进行后续请求,则将HttpWebRequest.CookieContainer它们发送到服务器,但代码无法访问它们.

据我所知,这使得它们无法以任何方式序列化或保存.看来,使这项工作的唯一方法是缓存实际的用户名和密码,每次都重新登录.

有什么我想念的吗?

.net c# http windows-phone windows-phone-8

11
推荐指数
1
解决办法
1265
查看次数

在PHP中的函数之间共享变量而不使用全局变量

我有一个与memcache服务器交互的类.我有不同的功能来插入,删除和检索数据.最初每个函数都调用了memcache_connect(),但这是不必要的,例如:

mc->insert()  
mc->get()  
mc->delete() 
Run Code Online (Sandbox Code Playgroud)

会做三个memcache连接.我通过为类创建一个构造来解决这个问题:

function __construct() {
    $this->mem = memcache_connect( ... );
}
Run Code Online (Sandbox Code Playgroud)

然后$this->mem在需要资源的任何地方使用,因此三个函数中的每一个都使用相同的memcache_connect资源.

这没关系,但是如果我在其他类中调用类,例如:

class abc
{
    function __construct() {
        $this->mc = new cache_class;
    }
}    
class def
{
    function __construct() {
        $this->mc = new cache_class;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后memcache_connect,当它只需要一个时,它仍然会进行两次调用.

我可以用全局变量做到这一点,但如果我不需要,我宁愿不使用它们.

示例全局实现:

$resource = memcache_connect( ... );

class cache_class
{
    function insert() {
        global $resource;
        memcache_set( $resource , ... );
    }
    function get() {
        global $resource;
        return memcache_get( $resource …
Run Code Online (Sandbox Code Playgroud)

php oop global

5
推荐指数
2
解决办法
5696
查看次数

在Windows Phone上将base64字符串转换为C#中的图像

我有一个base64字符串,我想将其转换为图像并将Image控件的Source设置为该结果.

通常我会这样做Image.FromStream,类似于:

Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}
Run Code Online (Sandbox Code Playgroud)

但是,该Image.FromStream方法在Windows Phone上不存在,并且随意搜索仅显示依赖于该方法的结果.

.net c# base64 windows-phone

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

字符串导致内存泄漏?

Visual C++在我的代码中发现内存泄漏,所以我把它缩小到尽可能最简单的测试用例并得到了这个:

#define _CRTDBG_MAP_ALLOC   // required
#include <stdlib.h>         // to enable MSVC++
#include <crtdbg.h>         // memory leak detection

#include <string>

using namespace std;

int main() {

    string foo;

    _CrtDumpMemoryLeaks();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Detected memory leaks!
Dumping objects ->
{130} normal block at 0x008748A8, 8 bytes long.
 Data:  B4 F9 44 00 00 00 00 00 
Object dump complete.

如果我评论出"string foo"; 它没有检测到任何东西.

我应该以某种方式取消分配foo吗?

c++ memory-leaks

4
推荐指数
2
解决办法
2801
查看次数

从C#中的复杂JSON结构中提取数据

我有JSON数据,如下所示:

{
   "position":[
      {
         "top":[
            42,
            12
         ]
      },
      {
         "middle":[
            10,
            15
         ]
      },
      {
         "bottom":[
            5,
            201
         ]
      },
      {
         "axis":[
            {
               "X":[
                  901,
                  51,
                  67
               ]
            },
            {
               "Y":[
                  1474186,
                  561647
               ]
            },
            {
               "Z":[
                  911,
                  1296501
               ]
            },
            15,
            20
         ]
      }
   ],
   "validated":true,
   "metadata":{
      "uri":"/data/complex/",
      "session":[
         1818,
         14
      ],
      "private":false
   },
   "vists":0,
   "ok":true,
   "data":{
      "10":{
         "title":"Alpha",
         "author":"Justin X. Ample",
         "cover":"/f48hf58.tiff"
      },
      "901":{
         "title":"Tau",
         "author":"Felina Blank",
         "cover":"/45trthrref.tiff"
      }
   },
   "live":null
}
Run Code Online (Sandbox Code Playgroud)

从这些数据我想显示如下列表:

Alpha, Justin X. Ample …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

4
推荐指数
1
解决办法
1262
查看次数

与BeginGetRequestStream/EndGetRequestStream的TaskFactory.FromAsync挂起

我有一个像这样的方法,在声明responseObject使用Task.Factory.FromAsync()时挂起

private async Task<string> post(string url, string postdata)
        {
            var request = WebRequest.Create(new Uri(url)) as HttpWebRequest;
            request.Method = "POST";

            // this works
            Task<Stream> requestStream = Task<Stream>.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, request);
            var sw = new StreamWriter(requestStream.Result);
            byte[] data = Encoding.UTF8.GetBytes(postdata);
            await requestStream.Result.WriteAsync(data, 0, data.Length);

            // this hangs
            Task<WebResponse> responseObject = Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, request); // Hangs here
            // Doesn't get to here
            var responseStream = responseObject.Result.GetResponseStream();
            var sr = new StreamReader(responseStream);
            string received = await sr.ReadToEndAsync();

            return received;
}
Run Code Online (Sandbox Code Playgroud)

如果我手动运行Begin/End方法,它可以正常工作,如下所示:

        request.BeginGetRequestStream(async ar …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous windows-phone-8

4
推荐指数
1
解决办法
6929
查看次数

此代码将导致内核级内存泄漏,这与用户内存泄漏之间的区别是什么

void foo()
{
    char *var = kmalloc(1, GFP_KERNEL);
    return;
}
Run Code Online (Sandbox Code Playgroud)

此代码将导致内核级内存泄漏,这与用户内存泄漏之间的区别是什么

这是今天采访中的一个问题.我对这个问题做得不好.任何人都可以提出任何想法吗?

c kernel memory-leaks linux-kernel

2
推荐指数
1
解决办法
502
查看次数