Как отправить файл JSon на удаленный веб-сервер с помощью C # - PullRequest
0 голосов
/ 17 мая 2018

Я создал приложение для системы управления Аптекой, используя mysql и c #. У них есть базы данных на локальном и удаленном серверах. В основном все записи хранятся в локальной базе данных. Затем после того, как вновь созданные записи должны быть загружены на удаленный сервер с помощью файла JSon. У меня также есть код для выполнения данных файла Json на удаленном сервере с помощью php. У меня есть новые записи на рабочем столе, используя файл json.

Код экспорта файла JSon:

    private void btnExportToJson_Click(object sender, EventArgs e)
    {
        string contents = (DataTableToJSONWithStringBuilder(_dt));
        //MessageBox.Show(afd);
        System.IO.File.WriteAllText(@"C:\Users\NICK-PC\Desktop\path.json", contents);
        Application.Exit();
    }

Код создания файла JSon:

    public string DataTableToJSONWithStringBuilder(DataTable table)
    {
        var jsonString = new StringBuilder();
        if (table.Rows.Count > 0)
        {
            jsonString.Append("[\n");
            for (int i = 0; i < table.Rows.Count; i++)
            {
                jsonString.Append("{\n");
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j < table.Columns.Count - 1)
                    {
                        jsonString.Append("\t\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" +
                                          table.Rows[i][j].ToString() + "\",\n");
                    }
                    else if (j == table.Columns.Count - 1)
                    {
                        jsonString.Append("\t\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" +
                                          table.Rows[i][j].ToString() + "\"");
                    }
                }

                if (i == table.Rows.Count - 1)
                {
                    jsonString.Append("}");
                }
                else
                {
                    jsonString.Append("\n},");
                    jsonString.Append("\n");
                }
            }

            jsonString.Append("\n]");
        }

        return jsonString.ToString();
    }

Я использовал следующий код, но не работает

public void jsonOps()
    {
        // Preparing Json object to send to the remote server
        jsonLogin li = new jsonLogin();
        li.username = "myadmin";
        li.password = "log@678*";
        string jLoginString = JsonConvert.SerializeObject(li);

        // Create HTTP POST request
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.youraddress.com");
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        httpWebRequest.Accept = "application/json";
        httpWebRequest.Method = "POST";

        string output = "";

        // Connecting to the server. Sending request and receiving response
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            streamWriter.Write(jLoginString);
            streamWriter.Flush();
            streamWriter.Close();

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                output = streamReader.ReadToEnd();
            }
        }

        // Reading JSON response
        JsonTextReader reader = new JsonTextReader(new StringReader(output));
        while (reader.Read())
        {
            if (reader.Value != null)
            {
                textBox1.Text = reader.Value;
            }
            else
            {
                // No value exception block
            }
        }

1 Ответ

0 голосов
/ 08 ноября 2018

Я использую следующий код

    private void btnUploadToServer_Click(object sender, EventArgs e)
    {
        bool connection = NetworkInterface.GetIsNetworkAvailable();
        if (connection == true)
        {
            //MessageBox.Show("Internet Available");

            try
            {
                using (WebClient client = new WebClient())
                {
                    string filePath = @"C:\Users\SAKTHYBAALAN-PC\Desktop\app_sample.json";
                    var myUri = new Uri(@"http://your_address/path/file.php");
                    client.UploadFile(myUri, filePath);
                    client.Credentials = CredentialCache.DefaultCredentials;
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }

            MessageBox.Show("Successfully Uploaded", "Success");
            btnExecuteURL.Enabled = true;
        }

        else
        {
            MessageBox.Show("There is no internet connection.\n Please make sure that you have an internet connection.", "No Internet");
        }
    }
...