标签: httpwebresponse

如何以编程方式登录wordpress?

我需要以编程方式在wordpress管理面板中执行某些操作,但无法管理如何使用C#和HttpWebRequest登录到Wordpress.

这是我做的:

private void button1_Click(object sender, EventArgs e)
        {
            string url = "http://localhost/wordpress/wp-login.php";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            CookieContainer cookies = new CookieContainer();

            SetupRequest(url, request, cookies);
            //request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            //request.Headers["Accept-Language"] = "uk,ru;q=0.8,en-us;q=0.5,en;q=0.3";
            //request.Headers["Accept-Encoding"] = "gzip,deflate";
            //request.Headers["Accept-Charset"] = "windows-1251,utf-8;q=0.7,*;q=0.7";


            string user = "test";
            string pwd = "test";

            request.Credentials = new NetworkCredential(user, pwd);

            string data = string.Format(
                "log={0}&pwd={1}&wp-submit={2}&testcookie=1&redirect_to={3}",
                user, pwd, 
                System.Web.HttpUtility.UrlEncode("Log In"),
                System.Web.HttpUtility.UrlEncode("http://localhost/wordpress/wp-admin/"));

            SetRequestData(request, data);

            ShowResponse(request);
}

private static void SetupRequest(string url, HttpWebRequest request, CookieContainer cookies)
        {
            request.CookieContainer = cookies;
            request.UserAgent = "Mozilla/5.0 …
Run Code Online (Sandbox Code Playgroud)

c# wordpress httpwebrequest httpwebresponse

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

带有MJPEG和multipart/x-mixed-replace的HttpWebResponse; boundary = - 来自安全摄像头的myboundary响应内容类型不起作用

我有一个ASP.NET应用程序,我需要从安全摄像头显示视频源.视频Feed的内容类型为'multipart/x-mixed-replace; boundary = - myboundary'与边界之间的图像数据.我需要帮助将数据流传递到我的页面,以便我拥有的客户端插件可以像使用直接浏览到摄像头的Web界面一样使用流.以下代码不起作用:

//Get response data
byte[] data = HtmlParser.GetByteArrayFromStream(response.GetResponseStream());
if (data != null)
{
 HttpContext.Current.Response.OutputStream.Write(data, 0, data.Length);
}
return;
Run Code Online (Sandbox Code Playgroud)

c# asp.net httpwebrequest mjpeg httpwebresponse

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

通过HTTP传输文件

据我所知,可以通过HTTP协议传输二进制文件.但HTTP是基于文本的协议,典型的HTTP响应框架如下所示:

HTTP/1.1 200 OK
Date: Wed, 23 May 2012 22:38:34 GMT
Content-Length: 438
Content-Type: text/html; charset=UTF-8

Here goes content
Run Code Online (Sandbox Code Playgroud)

如果是这样,二进制文件应该如何编码?什么是内容类型?内容是用base64编码的 - 与POP3协议中的附件相同吗?或者它是原始数据(如果是这样可能不会导致问题吗?)

http httpwebresponse http-headers

7
推荐指数
1
解决办法
6692
查看次数

从响应流中获取JSON数据并将其作为字符串读取?

我正在尝试从发送POST请求时收到的服务器读取响应.查看fiddler,它说这是一个JSON响应.如何使用C#Winforms将其解码为普通字符串,最好不使用外部API.如果您需要,我可以提供额外的代码/提琴手结果.

小提琴和乱码图像:

胡言乱语JSON

我试图在下面的代码中读取流:

Stream sw = requirejs.GetRequestStream(); 
sw.Write(logBytes, 0, logBytes.Length); 
sw.Close(); 
response = (HttpWebResponse)requirejs.GetResponse();
Stream stream = response.GetResponseStream(); 
StreamReader sr = new StreamReader(stream); 
MessageBox.Show(sr.ReadToEnd());
Run Code Online (Sandbox Code Playgroud)

c# json httpwebresponse winforms

7
推荐指数
1
解决办法
7万
查看次数

WebException.Response.GetResponseStream()应该关闭/处理吗?

当我抓到.NET时WebException,我应该关闭/处理Response.GetResponseStream()

MSDN示例不会关闭或异常处理任何事情.

许多SO 答案建议处理响应和/或流.

我处理了流,这引起了很大的问题.因为GetResponseStream()(总是?/有时?)返回相同的实例.因此,当我获得响应流然后处理它时,可能会将异常重新抛出到另一个层,该层也会获得响应流,它将被处理掉并且不可读并因此而抛出更多异常.

.net c# idisposable httpwebresponse webexception

7
推荐指数
2
解决办法
1473
查看次数

如何正确使用 HttpClient PostAsync 参数?

所以我正在使用 HttpClient 为我的项目编写一个扩展类,因为我从 HttpWebRequest 转移过来。

做 POST 请求时,如何将普通字符串作为参数发送?没有 json 或任何只是一个简单的字符串。

到目前为止,这就是它的样子。

static class HttpClientExtension
    {
        static HttpClient client = new HttpClient();
        public static string GetHttpResponse(string URL)
        {
            string fail = "Fail";
            client.BaseAddress = new Uri(URL);
            HttpResponseMessage Response = client.GetAsync(URL).GetAwaiter().GetResult();
            if (Response.IsSuccessStatusCode)
                return Response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            else
                return fail;
        }

        public static string PostRequest(string URI, string PostParams)
        {
            client.PostAsync(URI, new StringContent(PostParams));
            HttpResponseMessage response = client.GetAsync(URI).GetAwaiter().GetResult();
            string content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            return content;
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果你这样看

client.PostAsync(URI, new StringContent(PostParams));
Run Code Online (Sandbox Code Playgroud)

您可以看到我刚刚尝试创建新的 StringContent 并将字符串传递给它,但响应返回 404 页面未找到。我如何正确使用 Post.Async(); …

.net c# httpclient httpwebrequest httpwebresponse

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

如何在Http响应完成之前读取响应流

使用HttpWebRequest对象发出请求时,我需要调用方法GetResponse()来发送请求并获取响应.
此方法的问题在于,在收到所有数据之前,它不会返回响应对象.假设我正在下载一个100 MB的文件,在响应完成并且下载了所有100 MB之前,我将无法读取它.
我想要的是能够在它们到达时立即读取响应流字节,而无需等待响应完成.
我知道我可以使用Range Http标头,但它不适用于我的情况.

c# http httpwebrequest httpwebresponse

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

C#HttpWebResponse Comet问题

我想知道我将如何阅读与HttpWebRequest和HttpWebResponse的持久连接.问题似乎是GetResponseStream()函数在返回之前等待关闭服务器连接.

有没有其他简单的方法来读取彗星连接?不起作用的示例.

// get the response stream
        Stream resStream = response.GetResponseStream();

        string tempString = null;
        int count = 0;

        do
        {
            // fill our buffer
            count = resStream.Read(buf, 0, buf.Length);

            // as long as we read something we want to print it
            if (count != 0)
            {
                tempString = Encoding.ASCII.GetString(buf, 0, count);
                Debug.Write(tempString);
            }
        }
        while (true); // any more data to read?
Run Code Online (Sandbox Code Playgroud)

.net c# comet httpwebrequest httpwebresponse

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

如果内容长度> 7kb使用C#,则无法在WebRequest上发布

我正在尝试将Json发布到我们的Web服务.我的问题是,当我的request.ContentLength超过7kb时.我将在request.GetResponse()处获得Web异常500.但是如果我的request.ContentLength低于7kb,我的帖子就成功发送了.

错误信息:

 The remote server returned an error: (500) Internal Server Error.
Run Code Online (Sandbox Code Playgroud)

源代码:

public static string JsonPost(string url, string method, string postData)
{
    Uri address = new Uri(url + method);
    HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
    request.Method = "POST";
    request.ContentType = "application/json";
    byte[] byteData = UTF8Encoding.UTF8.GetBytes(postData);
    request.ContentLength = byteData.Length;
    using (Stream postStream = request.GetRequestStream())
    {
        postStream.Write(byteData, 0, byteData.Length);
    }
    try
    {
        using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
        {
            StreamReader reader = new StreamReader(response.GetResponseStream());
            string JsonResponse = reader.ReadToEnd();
            return JsonResponse; …
Run Code Online (Sandbox Code Playgroud)

c# json web-services httpwebrequest httpwebresponse

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

我可以在 SvelteKit 项目中获取用户的 IP 地址吗?

我有兴趣捕获用户首次提交到我的网站时的互联网协议 (IP) 地址。我的印象是 SvelteKit 提交与其他 Node.js 服务器解决方案类似。

我一直在关注这篇文章,但我没有看到任何远程类似的东西req.headers['x-forwarded-for'],或者req.socket.remoteAddress在我的请求中没有看到任何东西提交到 SvelteKit 中的 API 服务器。

以下是我在请求中看到的内容(通过 API 提交中的控制台日志):

arg1:
    body: (... data ... )
    Headers:
        accept:'*/*'
        accept-encoding:'gzip, deflate'
        accept-language:'en-US,en;q=0.9'
        connection:'keep-alive'
        content-length:'141'
        content-type:'text/plain;charset=UTF-8'
        cookie:'userid=c03efd10-3085-46cb-bacd-9eaeb605426e'
        host:'192.168.1.22:3000'
        origin:'http://192.168.1.22:3000'
        referer:'http://192.168.1.22:3000/learn'
        user-agent:'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
    locals:
        userid: '....'
    method: 'POST'
    params: {}
    path: '/api/user_form'
    query: ...
    rawBody: ... 
Run Code Online (Sandbox Code Playgroud)

绝对不行socket,没有标题['x-forwarded-for']

请注意,我正在本地网络上进行此操作。主机位于同一网络中的一台计算机上,客户端位于另一台计算机上。事实上,主机= 192.168.1.22:3000,客户端= 192.168.1.4

注意2,我正在通过以下方式运行程序svelte-kit dev --host 0.0.0.0

我没看到什么?有没有办法使用 Sveltekit 从网络提交中获取客户端用户的 …

httpresponse httpwebresponse node.js svelte sveltekit

6
推荐指数
2
解决办法
5668
查看次数