2
C#Windowsアプリケーションから自分のウェブサイト にWebリクエストをしようとしていますが、C#からのみ呼び出されたときに空白またはnullが返されます。ブラウザから呼び出されたときにMySQLが正常になるのはなぜですか?しかし、C#から呼び出されると空またはNULLになりますか?
私が私の要求をする前に、私はlogin request
で始まる必要があります。これは期待どおりに動作し、本当に正しい値を返します。
重要EDIT:
私はlogin.php
ファイルへの私のPHP
コードをコピー - ペーストしようとしましたが、それはC#で作業を行い、正しいカウント値を返します。
HttpClient
は正しく設定されていませんか?
マイPHP
テストコードは以下のようになります。
<?php
session_start();
if(!isset($_SESSION['user'])){ header("Location: index.php"); }
include_once 'dbconnect.php'; //contains $db
$sql = "SELECT * FROM myTable"; //contains two rows
$sql_res = mysqli_query($db, $sql);
$proxyCount = mysqli_num_rows($sql_res);
$echo "Count: ".$proxyCount;
?>
そして、私のC#
は、次のようになります
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Net.Http;
using ModernHttpClient;
using Newtonsoft.Json;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void log(string str)
{
logbox.AppendText(str + Environment.NewLine);
}
private string host = "http://www.mywebsite.com/";
private HttpClient httpClient = new HttpClient(new NativeMessageHandler());
private async Task<string> request(string target, Dictionary<string, string> _parameters)
{
string uri = host + target;
using (HttpResponseMessage response = await httpClient.PostAsync(uri, new FormUrlEncodedContent(_parameters)))
return new StreamReader(await response.Content.ReadAsStreamAsync()).ReadToEnd();
}
private async void button1_Click(object sender, EventArgs e)
{
string loginResp = await request("login.php", new Dictionary<string, string> { { "username", "user" }, { "password", "password" } });
log(loginResp);
}
private async void button2_Click(object sender, EventArgs e)
{
string proxiesResp = await request("proxy/proxy.php", new Dictionary<string, string> { { "getAllProxyRequests", "" } });
//above returns "count: " in C#, but returns "count: 2" in webbrowser
log(proxiesResp);
}
}
}
に
を言って行を変更しなければならなかったあなたは 'HTTP URLを呼び出してみました:かどうかを確認するためにバイオリンや郵便配達員から// www.mywebsite.com /'あなたは結果を得ますか? – CodingYoshi
@コーディングYoshiあなたの時間を無駄にして申し訳ありません。私は問題を発見した。 – vaid
心配はいりません。私はこの種のもののためのコードの一行を書く前に、常にFiddlerまたは同様のツールで物をテストします。その部分が動作することを知ったら、コードを書きます。あなたが問題を解決してうれしい。 – CodingYoshi