cSharpRenderer.jsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const { Fence } = require("@/components/Fence")
  2. const { default: renderRequestBody } = require("@/lib/api/renderRequestBody")
  3. const CSharpRequestRenderer = ({ method, url, headers, body }) => {
  4. const headerString = headers
  5. ? headers.map(({ key, value }) => `'${key}': '${value}'`).join(', ')
  6. : ''
  7. const bodyString = body ? renderRequestBody(body) : ''
  8. const object = {
  9. method: method,
  10. headers: headers,
  11. body: bodyString,
  12. }
  13. const code = `using System;
  14. using System.Net.Http;
  15. using System.Text;
  16. class Program
  17. {
  18. static void Main()
  19. {
  20. var url = "${url}";
  21. var headers = new System.Collections.Generic.Dictionary<string, string>
  22. {
  23. ${headerString}
  24. };
  25. var data = new StringContent(\`${JSON.stringify(
  26. object,
  27. null,
  28. 2
  29. )}\`, Encoding.UTF8, "application/json");
  30. var client = new HttpClient();
  31. var request = new HttpRequestMessage
  32. {
  33. Method = new HttpMethod("${method}"),
  34. RequestUri = new Uri(url),
  35. Content = data
  36. };
  37. foreach (var header in headers)
  38. {
  39. request.Headers.Add(header.Key, header.Value);
  40. }
  41. var response = client.SendAsync(request).Result;
  42. Console.WriteLine(response.StatusCode);
  43. }
  44. }
  45. `
  46. return (
  47. <Fence className="w-full" language="c">
  48. {code}
  49. </Fence>
  50. )
  51. }
  52. export default CSharpRequestRenderer